taskflow/core/wsq.hpp file

work-stealing queue (wsq) include file

Namespaces

namespace tf
taskflow namespace

Classes

template<typename T>
class tf::UnboundedWSQ
class to create a lock-free unbounded work-stealing queue
template<typename T, size_t LogSize = TF_DEFAULT_BOUNDED_TASK_QUEUE_LOG_SIZE>
class tf::BoundedWSQ
class to create a lock-free bounded work-stealing queue

Defines

#define TF_DEFAULT_BOUNDED_TASK_QUEUE_LOG_SIZE
#define TF_DEFAULT_UNBOUNDED_TASK_QUEUE_LOG_SIZE

Define documentation

#define TF_DEFAULT_BOUNDED_TASK_QUEUE_LOG_SIZE

This macro defines the default size of the bounded task queue in Log2. Bounded task queue is used by each worker. By default, the value is set to 8, allowing the queue to hold 256 tasks.

#define TF_DEFAULT_UNBOUNDED_TASK_QUEUE_LOG_SIZE

This macro defines the default size of the unbounded task queue in Log2. Unbounded task queue is used by the executor as an overflow region. By default, the value is set to 10, allowing the queue to hold 1024 tasks initially.