My Project
|
#include <mdl.h>
Public Member Functions | |
virtual void | enter_cond (mysql_cond_t *cond, mysql_mutex_t *mutex, const PSI_stage_info *stage, PSI_stage_info *old_stage, const char *src_function, const char *src_file, int src_line)=0 |
virtual void | exit_cond (const PSI_stage_info *stage, const char *src_function, const char *src_file, int src_line)=0 |
virtual int | is_killed ()=0 |
virtual THD * | get_thd ()=0 |
virtual bool | notify_shared_lock (MDL_context_owner *in_use, bool needs_thr_lock_abort)=0 |
An interface to separate the MDL module from the THD, and the rest of the server code.
virtual void MDL_context_owner::enter_cond | ( | mysql_cond_t * | cond, |
mysql_mutex_t * | mutex, | ||
const PSI_stage_info * | stage, | ||
PSI_stage_info * | old_stage, | ||
const char * | src_function, | ||
const char * | src_file, | ||
int | src_line | ||
) | [pure virtual] |
Enter a condition wait. For enter_cond()
/ exit_cond()
to work the mutex must be held before enter_cond()
; this mutex is then released by exit_cond()
. Usage must be: lock mutex; enter_cond(); your code; exit_cond().
cond | the condition to wait on | |
mutex | the associated mutex | |
[in] | stage | the stage to enter, or NULL |
[out] | old_stage | the previous stage, or NULL |
src_function | function name of the caller | |
src_file | file name of the caller | |
src_line | line number of the caller |
virtual THD* MDL_context_owner::get_thd | ( | ) | [pure virtual] |
This one is only used for DEBUG_SYNC. (Do not use it to peek/poke into other parts of THD.)
virtual int MDL_context_owner::is_killed | ( | ) | [pure virtual] |
Has the owner thread been killed?
virtual bool MDL_context_owner::notify_shared_lock | ( | MDL_context_owner * | in_use, |
bool | needs_thr_lock_abort | ||
) | [pure virtual] |