ark::core::EventCondition

Defined in header “ark/core/event_condition.hh”.


Provides a simple condition mechanism that allows you to sleep on (and wake up from) listening to a file descriptor. This can be faster that using a mutex and condition variable pair, and can also be nice if you are waiting on other descriptors (such as sockets) and want to also wait on an event.

Methods

  • EventCondition()
    Constructor. Initializes a new condition.

  • ~EventCondition()
    Destructor. Frees the condition.

  • EventCondition()
    Disable copies. Otherwise we’re not sure who owns the descriptor for cleanup.

  • EventCondition & operator=()

  • native_handle_type native_handle()
    Returns the underlying native handle for this object.

  • void notify()
    Notifies this condition. Anything sleeping on it will wake up.

  • bool clear()
    Clears the notification state. Waiting on this will block again until notify() is called. Returns true if the condition was set, false otherwise.

    NOLINTNEXTLINE(modernize-use-nodiscard)

  • bool wait_for(std::chrono::nanoseconds duration)
    Waits for the condition to become notified.

  • bool wait_for(std::unique_lock< MutexType > & lock, std::chrono::nanoseconds duration)
    Waits for the condition to become notified. Automatically unlocks/locks the given mutex as necessary.