25#ifndef MYSQL_HARNESS_WAITING_QUEUE_ADAPTOR_INCLUDED
26#define MYSQL_HARNESS_WAITING_QUEUE_ADAPTOR_INCLUDED
28#include <condition_variable>
72 if (
false ==
q_.dequeue(item)) {
101 lk, [
this, &item] {
return q_.enqueue(std::move(item)); });
116 if (
false ==
q_.enqueue(item)) {
provide waiting pop and push operator to thread-safe queues.
Definition: waiting_queue_adaptor.h:38
void notify_enqueueable()
Definition: waiting_queue_adaptor.h:129
void push(const value_type &item)
enqueue item into queue.
Definition: waiting_queue_adaptor.h:87
void push(value_type &&item)
Definition: waiting_queue_adaptor.h:96
bool try_push(const value_type &item)
enqueue an item into a queue if queue is not full.
Definition: waiting_queue_adaptor.h:115
std::condition_variable dequeueable_cond_
Definition: waiting_queue_adaptor.h:137
std::condition_variable enqueueable_cond_
Definition: waiting_queue_adaptor.h:140
std::mutex enqueueable_cond_mutex_
Definition: waiting_queue_adaptor.h:139
typename Q::value_type value_type
Definition: waiting_queue_adaptor.h:40
Q q_
Definition: waiting_queue_adaptor.h:134
value_type pop()
dequeue an item from a queue.
Definition: waiting_queue_adaptor.h:49
std::mutex dequeueable_cond_mutex_
Definition: waiting_queue_adaptor.h:136
bool try_pop(value_type &item)
dequeue an item from a queue if queue is not empty.
Definition: waiting_queue_adaptor.h:71
void notify_dequeueable()
Definition: waiting_queue_adaptor.h:124
uint16_t value_type
Definition: vt100.h:183