PMDK C++ bindings
1.13.0-git23.gf49772ac
This is the C++ bindings documentation for PMDK's libpmemobj.
|
Persistent memory aware implementation of multi producer single consumer queue. More...
#include <libpmemobj++/experimental/mpsc_queue.hpp>
Classes | |
class | batch_type |
Type representing the range of the mpsc_queue elements. More... | |
class | pmem_log_type |
Type representing persistent data, which may be managed by mpsc_queue. More... | |
class | worker |
mpsc_queue producer worker class. More... | |
Public Member Functions | |
mpsc_queue (pmem_log_type &pmem, size_t max_workers=1) | |
mpsc_queue constructor. More... | |
worker | register_worker () |
Registers the producer worker. More... | |
template<typename Function > | |
bool | try_consume_batch (Function &&f) |
Evaluates callback function f() for the data, which is ready to be consumed. More... | |
Persistent memory aware implementation of multi producer single consumer queue.
In case of crash or shutdown, reading and writing may be continued by new process, from the last position without loss of any, already produced data.
pmem::obj::experimental::mpsc_queue::mpsc_queue | ( | pmem_log_type & | pmem, |
size_t | max_workers = 1 |
||
) |
mpsc_queue constructor.
[in] | pmem | reference to already allocated pmem_log_type object |
[in] | max_workers | maximum number of workers which may be added to mpsc_queue at the same time. |
|
inline |
Registers the producer worker.
Number of workers have to be less or equal to max_workers specified in the mpsc_queue constructor.
|
inline |
Evaluates callback function f() for the data, which is ready to be consumed.
try_consume_batch() accesses data, and evaluates callback inside a transaction. If an exception is thrown within callback, it gets propagated to the caller and causes a transaction abort. In such case, next try_consume_batch() call would consume the same data.
transaction_scope_error |