24#ifndef MYSQL_CONCURRENCY_CONDITION_VARIABLE_WRAPPER_H
25#define MYSQL_CONCURRENCY_CONDITION_VARIABLE_WRAPPER_H
27#include <condition_variable>
46 template <
class Predicate>
57 template <
class Rep,
class Period,
class Predicate>
59 const std::chrono::duration<Rep, Period> &rel_time,
68 template <
class Rep,
class Period>
69 std::cv_status
wait_for(std::unique_lock<Mutex_wrapper> &
lock,
70 const std::chrono::duration<Rep, Period> &rel_time);
80 template <
class Clock,
class Duration,
class Predicate>
82 const std::chrono::time_point<Clock, Duration> &abs_time,
91 template <
class Clock,
class Duration>
93 std::unique_lock<Mutex_wrapper> &
lock,
94 const std::chrono::time_point<Clock, Duration> &abs_time);
104 void wait(std::unique_lock<Mutex_wrapper> &
lock);
MySQL wrapper for a condition variable, using mysql_cond_t as implementation of a condition variable ...
Definition: condition_variable_wrapper.h:37
bool wait_until(std::unique_lock< Mutex_wrapper > &lock, const std::chrono::time_point< Clock, Duration > &abs_time, Predicate pred)
Wait until an absolute timeout or until notified.
Definition: condition_variable_wrapper_impl.hpp:74
mysql_cond_t m_cv
Definition: condition_variable_wrapper.h:115
Condition_variable_wrapper(PSI_cond_key key)
Definition: condition_variable_wrapper.cpp:30
void notify_one()
Notify one waiting thread.
Definition: condition_variable_wrapper.cpp:38
Condition_variable_wrapper & operator=(Condition_variable_wrapper &&src)=delete
Condition_variable_wrapper(Condition_variable_wrapper &&)=delete
void notify_all()
Notify all waiting threads.
Definition: condition_variable_wrapper.cpp:40
Condition_variable_wrapper & operator=(const Condition_variable_wrapper &src)=delete
void wait(std::unique_lock< Mutex_wrapper > &lock, Predicate pred)
Wait until notified or predicate is false.
Definition: condition_variable_wrapper_impl.hpp:29
~Condition_variable_wrapper()
Definition: condition_variable_wrapper.cpp:34
bool wait_for(std::unique_lock< Mutex_wrapper > &lock, const std::chrono::duration< Rep, Period > &rel_time, Predicate pred)
Wait for a relative timeout or until notified.
Definition: condition_variable_wrapper_impl.hpp:37
Condition_variable_wrapper(const Condition_variable_wrapper &)=delete
unsigned int PSI_cond_key
Instrumented cond key.
Definition: psi_cond_bits.h:44
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
Definition: cache_line_size.h:31
Instrumentation helpers for conditions.
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:138
An instrumented cond structure.
Definition: mysql_cond_bits.h:50