MySQL 9.0.0
Source Code Documentation
|
Instrumentation helpers for mutexes. More...
#include <mysql/components/services/bits/psi_bits.h>
Go to the source code of this file.
Classes | |
struct | PSI_mutex_info_v1 |
Mutex information. More... | |
struct | PSI_mutex |
Interface for an instrumented mutex. More... | |
struct | PSI_mutex_locker_state_v1 |
State data storage for start_mutex_wait_v1_t . More... | |
Macros | |
#define | PSI_MUTEX_VERSION_1 1 |
Performance Schema Mutex Interface number for version 1. More... | |
#define | PSI_CURRENT_MUTEX_VERSION 1 |
Performance Schema Mutex Interface number for the most recent version. More... | |
Typedefs | |
typedef unsigned int | PSI_mutex_key |
Instrumented mutex key. More... | |
typedef struct PSI_mutex | PSI_mutex |
typedef struct PSI_mutex_locker | PSI_mutex_locker |
typedef enum PSI_mutex_operation | PSI_mutex_operation |
typedef struct PSI_mutex_locker_state_v1 | PSI_mutex_locker_state_v1 |
typedef void(* | register_mutex_v1_t) (const char *category, struct PSI_mutex_info_v1 *info, int count) |
Mutex registration API. More... | |
typedef struct PSI_mutex *(* | init_mutex_v1_t) (PSI_mutex_key key, const void *identity) |
Mutex instrumentation initialization API. More... | |
typedef void(* | destroy_mutex_v1_t) (struct PSI_mutex *mutex) |
Mutex instrumentation destruction API. More... | |
typedef void(* | unlock_mutex_v1_t) (struct PSI_mutex *mutex) |
Record a mutex instrumentation unlock event. More... | |
typedef struct PSI_mutex_locker *(* | start_mutex_wait_v1_t) (struct PSI_mutex_locker_state_v1 *state, struct PSI_mutex *mutex, enum PSI_mutex_operation op, const char *src_file, unsigned int src_line) |
Record a mutex instrumentation wait start event. More... | |
typedef void(* | end_mutex_wait_v1_t) (struct PSI_mutex_locker *locker, int rc) |
Record a mutex instrumentation wait end event. More... | |
typedef struct PSI_mutex_info_v1 | PSI_mutex_info_v1 |
typedef PSI_mutex_info_v1 | PSI_mutex_info |
typedef struct PSI_mutex_locker_state_v1 | PSI_mutex_locker_state |
Enumerations | |
enum | PSI_mutex_operation { PSI_MUTEX_LOCK = 0 , PSI_MUTEX_TRYLOCK = 1 } |
Operation performed on an instrumented mutex. More... | |
Instrumentation helpers for mutexes.
This header file provides the necessary declarations to use the mutex API with the performance schema instrumentation. In some compilers (SunStudio), 'static inline' functions, when declared but not used, are not optimized away (because they are unused) by default, so that including a static inline function from a header file does create unwanted dependencies, causing unresolved symbols at link time. Other compilers, like gcc, optimize these dependencies by default.