52class SingleUseEvent
final :
private impl::ContextAccessor {
54 SingleUseEvent()
noexcept;
56 SingleUseEvent(
const SingleUseEvent&) =
delete;
57 SingleUseEvent(SingleUseEvent&&) =
delete;
58 SingleUseEvent& operator=(
const SingleUseEvent&) =
delete;
59 SingleUseEvent& operator=(SingleUseEvent&&) =
delete;
85 [[nodiscard]]
bool IsReady()
const noexcept override;
89 impl::ContextAccessor* TryGetContextAccessor()
noexcept {
return this; }
93 friend class impl::FutureWaitStrategy<SingleUseEvent>;
95 void TryAppendAwaiter(boost::intrusive_ptr<
impl::Awaiter>& awaiter, std::uintptr_t context)
override;
96 void RemoveAwaiter(
impl::Awaiter& awaiter, std::uintptr_t context)
noexcept override;
98 impl::FastPimplWaitListLight awaiters_;