MySQL 8.4.0
Source Code Documentation
Collaboration diagram for Cond Instrumentation (ABI):

Classes

struct  PSI_cond
 Interface for an instrumented condition. More...
 
struct  PSI_cond_info_v1
 Condition information. More...
 
struct  PSI_cond_locker_state_v1
 State data storage for start_cond_wait_v1_t. More...
 
struct  PSI_cond_bootstrap
 Entry point for the performance schema interface. More...
 
struct  PSI_cond_service_v1
 Performance Schema Cond Interface, version 1. More...
 

Macros

#define PSI_COND_VERSION_1   1
 Performance Schema Cond Interface number for version 1. More...
 
#define PSI_CURRENT_COND_VERSION   1
 Performance Schema Cond Interface number for the most recent version. More...
 

Typedefs

typedef unsigned int PSI_cond_key
 Instrumented cond key. More...
 
typedef struct PSI_cond PSI_cond
 
typedef struct PSI_cond_locker PSI_cond_locker
 
typedef enum PSI_cond_operation PSI_cond_operation
 
typedef struct PSI_cond_info_v1 PSI_cond_info_v1
 
typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state_v1
 
typedef void(* register_cond_v1_t) (const char *category, struct PSI_cond_info_v1 *info, int count)
 Cond registration API. More...
 
typedef struct PSI_cond *(* init_cond_v1_t) (PSI_cond_key key, const void *identity)
 Cond instrumentation initialisation API. More...
 
typedef void(* destroy_cond_v1_t) (struct PSI_cond *cond)
 Cond instrumentation destruction API. More...
 
typedef void(* signal_cond_v1_t) (struct PSI_cond *cond)
 Record a condition instrumentation signal event. More...
 
typedef void(* broadcast_cond_v1_t) (struct PSI_cond *cond)
 Record a condition instrumentation broadcast event. More...
 
typedef struct PSI_cond_locker *(* start_cond_wait_v1_t) (struct PSI_cond_locker_state_v1 *state, struct PSI_cond *cond, struct PSI_mutex *mutex, enum PSI_cond_operation op, const char *src_file, unsigned int src_line)
 Record a condition instrumentation wait start event. More...
 
typedef void(* end_cond_wait_v1_t) (struct PSI_cond_locker *locker, int rc)
 Record a condition instrumentation wait end event. More...
 
typedef struct PSI_cond_info_v1 PSI_cond_info
 
typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state
 
typedef struct PSI_cond_service_v1 PSI_cond_service_t
 

Enumerations

enum  PSI_cond_operation { PSI_COND_WAIT = 0 , PSI_COND_TIMEDWAIT = 1 }
 Operation performed on an instrumented condition. More...
 

Variables

MYSQL_PLUGIN_IMPORT PSI_cond_service_tpsi_cond_service
 

Detailed Description

Macro Definition Documentation

◆ PSI_COND_VERSION_1

#define PSI_COND_VERSION_1   1

Performance Schema Cond Interface number for version 1.

This version is supported.

◆ PSI_CURRENT_COND_VERSION

#define PSI_CURRENT_COND_VERSION   1

Performance Schema Cond Interface number for the most recent version.

The most current version is PSI_COND_VERSION_1

Typedef Documentation

◆ broadcast_cond_v1_t

typedef void(* broadcast_cond_v1_t) (struct PSI_cond *cond)

Record a condition instrumentation broadcast event.

Parameters
condthe cond instrumentation

◆ destroy_cond_v1_t

typedef void(* destroy_cond_v1_t) (struct PSI_cond *cond)

Cond instrumentation destruction API.

Parameters
condthe rcond to destroy

◆ end_cond_wait_v1_t

typedef void(* end_cond_wait_v1_t) (struct PSI_cond_locker *locker, int rc)

Record a condition instrumentation wait end event.

Parameters
lockera thread locker for the running thread
rcthe wait operation return code

◆ init_cond_v1_t

typedef struct PSI_cond *(* init_cond_v1_t) (PSI_cond_key key, const void *identity)

Cond instrumentation initialisation API.

Parameters
keythe registered key
identitythe address of the cond itself
Returns
an instrumented cond

◆ PSI_cond

typedef struct PSI_cond PSI_cond

◆ PSI_cond_info

◆ PSI_cond_info_v1

◆ PSI_cond_key

typedef unsigned int PSI_cond_key

Instrumented cond key.

To instrument a condition, a condition key must be obtained using register_cond. Using a zero key always disable the instrumentation.

◆ PSI_cond_locker

◆ PSI_cond_locker_state

◆ PSI_cond_locker_state_v1

◆ PSI_cond_operation

◆ PSI_cond_service_t

◆ register_cond_v1_t

typedef void(* register_cond_v1_t) (const char *category, struct PSI_cond_info_v1 *info, int count)

Cond registration API.

Parameters
categorya category name (typically a plugin name)
infoan array of cond info to register
countthe size of the info array

◆ signal_cond_v1_t

typedef void(* signal_cond_v1_t) (struct PSI_cond *cond)

Record a condition instrumentation signal event.

Parameters
condthe cond instrumentation

◆ start_cond_wait_v1_t

typedef struct PSI_cond_locker *(* start_cond_wait_v1_t) (struct PSI_cond_locker_state_v1 *state, struct PSI_cond *cond, struct PSI_mutex *mutex, enum PSI_cond_operation op, const char *src_file, unsigned int src_line)

Record a condition instrumentation wait start event.

Parameters
statedata storage for the locker
condthe instrumented cond to lock
mutexthe instrumented mutex associated with the condition
opthe operation to perform
src_filethe source file name
src_linethe source line number
Returns
a cond locker, or NULL

Enumeration Type Documentation

◆ PSI_cond_operation

Operation performed on an instrumented condition.

Enumerator
PSI_COND_WAIT 

Wait.

PSI_COND_TIMEDWAIT 

Wait, with timeout.

Variable Documentation

◆ psi_cond_service

MYSQL_PLUGIN_IMPORT PSI_cond_service_t* psi_cond_service
extern