26#ifndef MYSQL_HARNESS_WAITING_QUEUE_ADAPTOR_INCLUDED
27#define MYSQL_HARNESS_WAITING_QUEUE_ADAPTOR_INCLUDED
30#include <condition_variable>
74 if (
false ==
q_.dequeue(item)) {
92 template <
class Rep,
class Period>
97 lk,
timeout, [
this, &item] { return q_.dequeue(item); })) {
128 lk, [
this, &item] {
return q_.enqueue(std::move(item)); });
143 if (
false ==
q_.enqueue(item)) {
provide waiting pop and push operator to thread-safe queues.
Definition: waiting_queue_adaptor.h:40
void notify_enqueueable()
Definition: waiting_queue_adaptor.h:156
void push(const value_type &item)
enqueue item into queue.
Definition: waiting_queue_adaptor.h:114
void push(value_type &&item)
Definition: waiting_queue_adaptor.h:123
bool try_push(const value_type &item)
enqueue an item into a queue if queue is not full.
Definition: waiting_queue_adaptor.h:142
std::condition_variable dequeueable_cond_
Definition: waiting_queue_adaptor.h:164
std::condition_variable enqueueable_cond_
Definition: waiting_queue_adaptor.h:167
std::mutex enqueueable_cond_mutex_
Definition: waiting_queue_adaptor.h:166
typename Q::value_type value_type
Definition: waiting_queue_adaptor.h:42
Q q_
Definition: waiting_queue_adaptor.h:161
value_type pop()
dequeue an item from a queue.
Definition: waiting_queue_adaptor.h:51
bool try_pop(value_type &item, std::chrono::duration< Rep, Period > timeout)
Attempt to dequeue an item from a queue for a given period of time.
Definition: waiting_queue_adaptor.h:93
std::mutex dequeueable_cond_mutex_
Definition: waiting_queue_adaptor.h:163
bool try_pop(value_type &item)
dequeue an item from a queue if queue is not empty.
Definition: waiting_queue_adaptor.h:73
void notify_dequeueable()
Definition: waiting_queue_adaptor.h:151
uint16_t value_type
Definition: vt100.h:184
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:498