35class MultiConsumerEvent
final :
private impl::AwaitableBase {
37 MultiConsumerEvent()
noexcept;
39 MultiConsumerEvent(
const MultiConsumerEvent&) =
delete;
40 MultiConsumerEvent(MultiConsumerEvent&&) =
delete;
41 MultiConsumerEvent& operator=(
const MultiConsumerEvent&) =
delete;
42 MultiConsumerEvent& operator=(MultiConsumerEvent&&) =
delete;
43 ~MultiConsumerEvent();
61 [[nodiscard]]
bool IsReady()
const noexcept override;
65 return AwaitableToken{
utils::impl::InternalTag{},
this};
69 void TryAppendAwaiter(boost::intrusive_ptr<
impl::Awaiter>& awaiter, std::uintptr_t context)
override;
70 boost::intrusive_ptr<
impl::Awaiter> RemoveAwaiter(
impl::Awaiter& awaiter, std::uintptr_t context)
noexcept override;
72 std::atomic<
bool> is_ready_{
false};
73 impl::FastPimplWaitList awaiters_;