48class SingleUseEvent
final :
private impl::AwaitableBase {
50 SingleUseEvent()
noexcept;
52 SingleUseEvent(
const SingleUseEvent&) =
delete;
53 SingleUseEvent(SingleUseEvent&&) =
delete;
54 SingleUseEvent& operator=(
const SingleUseEvent&) =
delete;
55 SingleUseEvent& operator=(SingleUseEvent&&) =
delete;
81 [[nodiscard]]
bool IsReady()
const noexcept override;
85 return AwaitableToken{
utils::impl::InternalTag{},
this};
89 void TryAppendAwaiter(boost::intrusive_ptr<
impl::Awaiter>& awaiter, std::uintptr_t context)
override;
90 boost::intrusive_ptr<
impl::Awaiter> RemoveAwaiter(
impl::Awaiter& awaiter, std::uintptr_t context)
noexcept override;
92 impl::FastPimplWaitListLight awaiters_;