9 #include "ps_datacontainer.h"
11 #include <shared_mutex>
15 namespace parameter_server {
18 static constexpr
unsigned int BUFFER_SIZE = 16;
19 static constexpr
unsigned int BUFFER_MASK{BUFFER_SIZE - 1};
30 bool allocate(
unsigned int element_size);
42 static constexpr
unsigned int size() {
return BUFFER_SIZE; }
44 unsigned int pos()
const {
return enqueue_pos_.load(std::memory_order_acquire); }
48 #if __cplusplus >= 201703L
49 std::shared_mutex guard;
51 std::shared_timed_mutex guard;
56 std::atomic<unsigned int> enqueue_pos_{};