24#ifndef MYSQL_CSA_MODULE_H
25#define MYSQL_CSA_MODULE_H
Interface for initable components.
Definition: initable.h:32
Scope guard to unlock an object.
Definition: lock_guard_object.h:44
Represents a lockable module.
Definition: module.h:40
void init_locking()
Initializes internal locking.
Definition: module.cpp:35
bool is_inited()
Checks if the module is initialized.
Definition: module.cpp:75
void unlock()
Unlocks this module.
Definition: module.cpp:80
virtual ~Module() override
Destructor.
Definition: module.cpp:33
mysql_rwlock_t m_rwlock
Read-write lock for the module.
Definition: module.h:94
bool deinit() override
Deinitializes the module.
Definition: module.cpp:63
State
Enum defining possible states of the module.
Definition: module.h:43
Lock_guard rdlock()
Acquires a read lock on this object.
Definition: module.cpp:53
PSI_rwlock_key m_rwlock_key
PSI key for the read-write lock.
Definition: module.h:92
virtual bool do_init()
Initialization hook for derived classes.
Definition: module.cpp:82
bool init() override
Initializes the module.
Definition: module.cpp:40
Lock_guard wrlock()
Acquires a write lock on this object.
Definition: module.cpp:58
Module(PSI_mutex_key mutex_key, PSI_rwlock_key rwlock_key)
Constructs the module.
Definition: module.cpp:28
std::atomic< State > m_inited
State of the module.
Definition: module.h:96
virtual bool do_deinit()
Deinitialization hook for derived classes.
Definition: module.cpp:84
unsigned int PSI_mutex_key
Instrumented mutex key.
Definition: psi_mutex_bits.h:52
unsigned int PSI_rwlock_key
Instrumented rwlock key.
Definition: psi_rwlock_bits.h:44
Common header for many mysys elements.
Definition: channel.cpp:28
Instrumentation helpers for mutexes.
Instrumentation helpers for rwlock.
An instrumented rwlock structure.
Definition: mysql_rwlock_bits.h:51