MySQL 8.3.0
Source Code Documentation
Event_queue Class Reference

Queue of active events awaiting execution. More...

#include <event_queue.h>

Public Member Functions

 Event_queue ()
 
 ~Event_queue ()
 
bool init_queue ()
 
bool create_event (THD *thd, Event_queue_element *new_element, bool *created)
 Adds an event to the queue. More...
 
void update_event (THD *thd, LEX_CSTRING dbname, LEX_CSTRING name, Event_queue_element *new_element)
 
void drop_event (THD *thd, LEX_CSTRING dbname, LEX_CSTRING name)
 
void drop_schema_events (LEX_CSTRING schema)
 
void recalculate_activation_times (THD *thd)
 
bool get_top_for_execution_if_time (THD *thd, Event_queue_element_for_exec **event_name)
 
void dump_internal_status ()
 

Private Member Functions

void empty_queue ()
 
void deinit_queue ()
 
void lock_data (const char *func, uint line)
 
void unlock_data (const char *func, uint line)
 
void cond_wait (THD *thd, struct timespec *abstime, const PSI_stage_info *stage, const char *src_func, const char *src_file, uint src_line)
 
void find_n_remove_event (LEX_CSTRING db, LEX_CSTRING name)
 
void drop_matching_events (LEX_CSTRING pattern, bool(*)(LEX_CSTRING, Event_basic *))
 
void dbug_dump_queue (time_t now)
 

Private Attributes

mysql_mutex_t LOCK_event_queue
 
mysql_cond_t COND_queue_state
 
Priority_queue< Event_queue_element *, std::vector< Event_queue_element *, Malloc_allocator< Event_queue_element * > >, Event_queue_lessqueue
 
my_time_t next_activation_at
 
uint mutex_last_locked_at_line
 
uint mutex_last_unlocked_at_line
 
std::atomic< uint > mutex_last_attempted_lock_at_line
 
const char * mutex_last_locked_in_func
 
const char * mutex_last_unlocked_in_func
 
std::atomic< const char * > mutex_last_attempted_lock_in_func
 
bool mutex_queue_data_locked
 
std::atomic< bool > mutex_queue_data_attempting_lock
 
bool waiting_on_cond
 

Detailed Description

Queue of active events awaiting execution.

Member Data Documentation

◆ COND_queue_state

mysql_cond_t Event_queue::COND_queue_state
private

◆ LOCK_event_queue

mysql_mutex_t Event_queue::LOCK_event_queue
private

◆ mutex_last_attempted_lock_at_line

std::atomic<uint> Event_queue::mutex_last_attempted_lock_at_line
private

◆ mutex_last_attempted_lock_in_func

std::atomic<const char *> Event_queue::mutex_last_attempted_lock_in_func
private

◆ mutex_last_locked_at_line

uint Event_queue::mutex_last_locked_at_line
private

◆ mutex_last_locked_in_func

const char* Event_queue::mutex_last_locked_in_func
private

◆ mutex_last_unlocked_at_line

uint Event_queue::mutex_last_unlocked_at_line
private

◆ mutex_last_unlocked_in_func

const char* Event_queue::mutex_last_unlocked_in_func
private

◆ mutex_queue_data_attempting_lock

std::atomic<bool> Event_queue::mutex_queue_data_attempting_lock
private

◆ mutex_queue_data_locked

bool Event_queue::mutex_queue_data_locked
private

◆ next_activation_at

my_time_t Event_queue::next_activation_at
private

◆ queue

◆ waiting_on_cond

bool Event_queue::waiting_on_cond
private

The documentation for this class was generated from the following files: