Ark Server API (ASA) - Wiki
|
#include <mpmc_bounded_q.h>
Classes | |
struct | cell_t |
Public Types | |
using | item_type = T |
Public Member Functions | |
mpmc_bounded_queue (size_t buffer_size) | |
~mpmc_bounded_queue () | |
bool | enqueue (T &&data) |
bool | dequeue (T &data) |
bool | is_empty () |
Private Types | |
typedef char | cacheline_pad_t[cacheline_size] |
Private Member Functions | |
mpmc_bounded_queue (mpmc_bounded_queue const &)=delete | |
void | operator= (mpmc_bounded_queue const &)=delete |
Private Attributes | |
size_t const | max_size_ |
cacheline_pad_t | pad0_ |
cell_t *const | buffer_ |
size_t const | buffer_mask_ |
cacheline_pad_t | pad1_ |
std::atomic< size_t > | enqueue_pos_ |
cacheline_pad_t | pad2_ |
std::atomic< size_t > | dequeue_pos_ |
cacheline_pad_t | pad3_ |
Static Private Attributes | |
static size_t const | cacheline_size = 64 |
Definition at line 57 of file mpmc_bounded_q.h.
|
private |
Definition at line 160 of file mpmc_bounded_q.h.
Definition at line 61 of file mpmc_bounded_q.h.
|
inline |
Definition at line 62 of file mpmc_bounded_q.h.
|
inline |
Definition at line 77 of file mpmc_bounded_q.h.
|
privatedelete |
Definition at line 111 of file mpmc_bounded_q.h.
Definition at line 83 of file mpmc_bounded_q.h.
|
inline |
Definition at line 136 of file mpmc_bounded_q.h.
|
privatedelete |
Definition at line 163 of file mpmc_bounded_q.h.
Definition at line 164 of file mpmc_bounded_q.h.
|
staticprivate |
Definition at line 159 of file mpmc_bounded_q.h.
|
private |
Definition at line 168 of file mpmc_bounded_q.h.
|
private |
Definition at line 166 of file mpmc_bounded_q.h.
Definition at line 157 of file mpmc_bounded_q.h.
|
private |
Definition at line 162 of file mpmc_bounded_q.h.
|
private |
Definition at line 165 of file mpmc_bounded_q.h.
|
private |
Definition at line 167 of file mpmc_bounded_q.h.
|
private |
Definition at line 169 of file mpmc_bounded_q.h.