45class SingleUseEvent
final :
private impl::ContextAccessor {
47 SingleUseEvent()
noexcept;
49 SingleUseEvent(
const SingleUseEvent&) =
delete;
50 SingleUseEvent(SingleUseEvent&&) =
delete;
51 SingleUseEvent& operator=(
const SingleUseEvent&) =
delete;
52 SingleUseEvent& operator=(SingleUseEvent&&) =
delete;
76 [[nodiscard]]
bool IsReady()
const noexcept override;
80 impl::ContextAccessor* TryGetContextAccessor()
noexcept {
return this; }
84 friend class impl::FutureWaitStrategy<SingleUseEvent>;
86 impl::EarlyWakeup TryAppendWaiter(impl::TaskContext& waiter)
override;
87 void RemoveWaiter(impl::TaskContext& waiter)
noexcept override;
88 void RethrowErrorResult()
const override;
89 void AfterWait()
noexcept override;
91 impl::FastPimplWaitListLight waiters_;