39class MultiConsumerEvent
final :
private impl::ContextAccessor {
41 MultiConsumerEvent()
noexcept;
43 MultiConsumerEvent(
const MultiConsumerEvent&) =
delete;
44 MultiConsumerEvent(MultiConsumerEvent&&) =
delete;
45 MultiConsumerEvent& operator=(
const MultiConsumerEvent&) =
delete;
46 MultiConsumerEvent& operator=(MultiConsumerEvent&&) =
delete;
47 ~MultiConsumerEvent();
65 [[nodiscard]]
bool IsReady()
const noexcept override;
69 impl::ContextAccessor* TryGetContextAccessor()
noexcept {
return this; }
73 friend class impl::FutureWaitStrategy<MultiConsumerEvent>;
75 void TryAppendAwaiter(boost::intrusive_ptr<
impl::Awaiter>& awaiter, std::uintptr_t context)
override;
76 void RemoveAwaiter(
impl::Awaiter& awaiter, std::uintptr_t context)
noexcept override;
78 std::atomic<
bool> is_ready_{
false};
79 impl::FastPimplWaitList awaiters_;