MLIB
|
A template class that implements a "synchronous queue", in effect a mailbox that can store one "message", created by a producer thread, until consumed by a consumer thread. More...
#include <syncque.h>
Public Member Functions | |
sync_queue () | |
Create a synchronous queue. | |
void | produce (const M &obj) |
Put new element in queue. | |
void | consume (M &obj) |
A template class that implements a "synchronous queue", in effect a mailbox that can store one "message", created by a producer thread, until consumed by a consumer thread.
If the mailbox is full (a message already there), the producer is blocked until previous message is consumed. If the mailbox is empty, a consumer is blocked until a new message arrives.
This is strictly equivalent with an async_queue with size 1 however it doesn't have the underlining std::queue structure and avoids all the back and forth copying of messages.