23 template <
class T,
class... Stages>
26 template <
class T,
size_t Amp>
45 template <
class T,
size_t Amp>
58 template <
class U,
class... Stages>
67 template <
class...
Args>
69 queue_.blockingWrite(std::forward<Args>(args)...);
72 template <
class...
Args>
74 return queue_.write(std::forward<Args>(args)...);
77 template <
class...
Args>
79 queue_.enqueueWithTicket(ticket, std::forward<Args>(args)...);
84 queue_.blockingReadWithTicket(ticket, elem);
89 return queue_.read(elem);
92 template <
class...
Args>
94 return queue_.readAndGetTicket(
ticket, elem);
99 return queue_.writeCount();
103 return queue_.readCount();
111 template <
class Tuple>
119 template <
class T,
class... Ts>
uint64_t blockingRead(T &elem) noexcept
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
—— Concurrent Priority Queue Implementation ——
uint64_t readCount() const noexcept
requires E e noexcept(noexcept(s.error(std::move(e))))
uint64_t writeCount() const noexcept
static constexpr StringPiece ticket
void blockingWriteWithTicket(uint64_t ticket, Args &&...args) noexcept
MPMCPipelineStageImpl(size_t capacity)
bool read(T &elem) noexcept
bool write(Args &&...args) noexcept
bool readAndGetTicket(uint64_t &ticket, T &elem) noexcept
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
void blockingWrite(Args &&...args) noexcept
static constexpr size_t kAmplification