nxt::detail namespace

Classes

template <typename T>
class bound_publisher
template <typename T>
class event_queue
Small cancellable async event queue.
template <typename T>
struct next_awaiter
Awaitable returned by signal::next().
template <typename T>
class publisher
template <typename T>
class signal
template <typename T>
struct signal_state

Functions

template <typename T>
auto cancel_pending(signal_state<T>& s, std::optional<T>* result) →  bool
template <typename T>
void clear_pending(signal_state<T>& s, std::optional<T>* result)
template <typename T>
auto deliver_to_pending(signal_state<T>& s, std::optional<T> value) →  bool
template <typename... Awaitables>
auto select_when_any(std::stop_source stop_source, Awaitables && ... aws) →  auto
template <typename... Awaitables>
auto select_when_any(Awaitables && ... aws) →  auto

Function documentation

template <typename T>
bool nxt::detail::cancel_pending(signal_state<T>& s, std::optional<T>* result)

template <typename T>
void nxt::detail::clear_pending(signal_state<T>& s, std::optional<T>* result)

template <typename T>
bool nxt::detail::deliver_to_pending(signal_state<T>& s, std::optional<T> value)

Wake the current waiter (if any) with value. Returns true if a waiter was woken.

template <typename... Awaitables>
auto nxt::detail::select_when_any(std::stop_source stop_source, Awaitables && ... aws)

Race awaitables, requesting stop_source once the first completes. Awaitables must observe the corresponding stop token themselves.

template <typename... Awaitables>
auto nxt::detail::select_when_any(Awaitables && ... aws)

Race awaitables — return the result of whichever finishes first as a std::variant. void-returning awaitables become std::monostate alternatives.