Defined in “ark/concurrency/forward.hh”:

  • using ThreadPoolPtr = std::shared_ptr< ThreadPool >


  • ark::concurrency::AtomicCondition
    A simple wrapper around futexes that allows you to wait on a condition (this class) until it is notified/signaled. It works without a mutex. If you signal the class, it will remain signaled until wait() is called.

  • ark::concurrency::CallbackThread
    This class allows you to create a backing thread that will process commands. It is useful for when you have code where all commands need to execute from the same thread context.

  • ark::concurrency::LocklessQueue
    A lock-free/wait-free/alloc-free multi-producer/multi-subscriber queue, which favors newer items over older items. This is optimized to allow consumers to make progress at all costs, even when crossing thread priority boundaries.

    It is primarily intended for situations in which you might have different priority threads pushing and popping. It will most likely be a bit slower than a typical mutex/queue pair, but is aimed at preventing priority inversion.

  • ark::concurrency::ThreadPool
    A basic thread pool, which allows you to schedule concrete work items (functions) over some number of threads.

  • ark::concurrency::ThreadPoolConfig
    Configuration for the thread pool. Can be used to configure some advanced features of the pool.

  • ark::concurrency::ThreadPoolPriorityConfig
    A structure intended to allow explicit management of thread priorities within the pool.

  • ark::concurrency::ThreadPoolStatistics
    A structure used to give some basic statistics about the running thread pool.


Declared in “ark/concurrency/lockless_queue.hh”:

  • constexpr LocklessQueuePushOptions operator|(LocklessQueuePushOptions lhs, LocklessQueuePushOptions rhs)
    Operator for or-ing an option to the list.

  • constexpr LocklessQueuePushOptions operator&(LocklessQueuePushOptions lhs, LocklessQueuePushOptions rhs)
    Operator for and-ing an option to the list.