24#ifndef INSTRUMENTED_CONDITION_VARIABLE_H
25#define INSTRUMENTED_CONDITION_VARIABLE_H
26#include <condition_variable>
35using std::unique_lock;
36using std::chrono::time_point;
75 template <
class Predicate>
79 template <
class Clock,
class Duration>
81 const time_point<Clock, Duration> &abs_time) {
83 Clock::to_time_t(abs_time), 0
87 lock.mutex()->native_handle()),
89 ? cv_status::no_timeout
condition_variable is a C++ STL conditional variable (std::condition_variable) implementation using t...
Definition: instrumented_condition_variable.h:63
~condition_variable()
Definition: instrumented_condition_variable.h:69
PSI_cond_key m_key
Definition: instrumented_condition_variable.h:94
void wait(unique_lock< mutex > &lock, Predicate stop_waiting)
Definition: instrumented_condition_variable.h:76
condition_variable(const condition_variable &)=delete
mysql_cond_t m_cond
Definition: instrumented_condition_variable.h:95
void notify_one() noexcept
Definition: instrumented_condition_variable.h:70
void notify_all() noexcept
Definition: instrumented_condition_variable.h:71
condition_variable(PSI_cond_key key)
Definition: instrumented_condition_variable.h:65
void wait(unique_lock< mutex > &lock)
Definition: instrumented_condition_variable.h:72
cv_status wait_until(unique_lock< mutex > &lock, const time_point< Clock, Duration > &abs_time)
Definition: instrumented_condition_variable.h:80
#define mysql_cond_wait(C, M)
Definition: mysql_cond.h:48
#define mysql_cond_destroy(C)
Definition: mysql_cond.h:45
#define mysql_cond_init(K, C)
Definition: mysql_cond.h:42
#define mysql_cond_timedwait(C, M, T)
Definition: mysql_cond.h:51
#define mysql_cond_signal(C)
Definition: mysql_cond.h:56
unsigned int PSI_cond_key
Instrumented cond key.
Definition: psi_cond_bits.h:44
int(* mysql_cond_broadcast)(mysql_cond_t *that, const char *src_file, unsigned int src_line)
Definition: mysql_cond_service.h:52
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:498
Definition: instrumented_condition_variable.h:32
required string key
Definition: replication_asynchronous_connection_failover.proto:60
A filter of some sort that is not a join condition (those are stored in JoinPredicate objects).
Definition: access_path.h:132
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50