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