carb::tasking¶
Namespace for carb.tasking.plugin and related utilities.
Classes¶
carb::tasking::All: Specifies an “all” grouping of RequiredObject(s).
carb::tasking::Any: Specifies an “any” grouping of RequiredObject(s).
carb::tasking::IFiberEvents: Defines the fiber events interface that receives fiber-related notifications.
carb::tasking::ITasking: Defines a tasking plugin interface, acquired with carb::Framework::acquireInterface() when carb.tasking.plugin is loaded.
carb::tasking::IThreadPool: Optional plugin providing helpful facilities for utilizing a pool of threads to perform basic small tasks.
carb::tasking::Object: A generic ABI-safe representation of multiple types.
carb::tasking::RequiredObject: Helper class to ensure correct compliance with the requiredObject parameter of ITasking::add[Throttled]SubTask() and carb::thread::futex::wait functions.
carb::tasking::SpinMutex: This atomic spin lock conforms to C++ Named Requirements of Lockable which makes it compatible with std::lock_guard.
carb::tasking::SpinSharedMutex: Spin lock conforming to C++ named requirements of SharedMutex.
carb::tasking::TaskDebugInfo: Defines debug information about a task retrieved by ITasking::getTaskDebugInfo() or ITasking::walkTaskDebugInfo().
carb::tasking::TaskDesc: Defines a task descriptor.
carb::tasking::TaskingDesc: Defines a tasking plugin descriptor.
carb::tasking::Tracker: Helper class to provide correct types to the carb::tasking::Trackers class.
carb::tasking::Trackers: Helper class to ensure correct compliance with trackers parameter of ITasking::addTask() variants.
carb::tasking::ConditionVariable: A fiber-aware condition_variable: a synchronization primitive that, together with a carb::tasking::Mutex, blocks one or more threads or tasks until a condition becomes true.
carb::tasking::ConditionVariableWrapper: Wrapper for carb::tasking::ConditionVariable.
carb::tasking::Counter: Used to create dependencies between tasks and to wait for a set of tasks to finish.
carb::tasking::CounterWrapper: Wrapper for a carb::tasking::Counter.
carb::tasking::Future: A carb::tasking::Future is a counterpart to a carb::tasking::Promise.
carb::tasking::Mutex: A fiber-aware mutex: a synchronization primitive for mutual exclusion.
carb::tasking::MutexWrapper: Wrapper for a carb::tasking::Mutex that conforms to C++ Named Requirements of Lockable.
carb::tasking::PinGuard: Causes the currently executing TaskContext to be “pinned” to the thread it is currently running on until carb::tasking::PinGuard is destroyed.
carb::tasking::Promise: A facility to store a value that is later acquired asynchronously via a carb::tasking::Future created via Promise::get_future().
carb::tasking::RecursiveMutexWrapper: Wrapper for a recursive carb::tasking::Mutex that conforms to C++ Named Requirements of Lockable.
carb::tasking::ScopedTracking: When instantiated, begins tracking the passed carb::tasking::Trackers.
carb::tasking::Semaphore: A fiber-aware semaphore: a synchronization primitive that limits to N threads/fibers.
carb::tasking::SemaphoreWrapper: Wrapper for a carb::tasking::Semaphore.
carb::tasking::SharedFuture: carb::tasking::SharedFuture is a sharable version of carb::tasking::Future.
carb::tasking::SharedMutex: A fiber-aware shared_mutex: a synchronization primitive that functions as a multiple-reader/single-writer lock.
carb::tasking::SharedMutexWrapper: Wrapper for a carb::tasking::SharedMutex that (mostly) conforms to C++ Named Requirements of carb::tasking::SharedMutex.
carb::tasking::TaskGroup: carb::tasking::TaskGroup is a small and fast counter for tasks.
carb::tasking::ThreadPool: Opaque handle for a thread pool.
carb::tasking::ThreadPoolWrapper: Helper class for using carb::tasking::IThreadPool API.
Enums¶
carb::tasking::ObjectType: carb::tasking::Object type for carb::tasking::Object.
carb::tasking::Priority: Defines a task priority.
carb::tasking::TaskDebugState: Debug state of a task.
Functions¶
carb::tasking::getDefaultTaskingDesc: Default carb::tasking::TaskingDesc plugin starts with.
Typedefs¶
carb::tasking::ApplyBatchFn: The function executed by ITasking::applyRangeBatch()
carb::tasking::ApplyFn: The function executed by ITasking::applyRange()
carb::tasking::JobFn: Defines the function for performing a user-provided job.
carb::tasking::OnTaskFn: The function to execute as a task.
carb::tasking::TaskContext: An opaque handle that is used with getTaskContext(), suspendTask() and wakeTask().
carb::tasking::TaskDebugInfoFn: Callback function for ITasking::walkTaskDebugInfo().
carb::tasking::TaskStorageDestructorFn: A destructor function for a Task Storage slot.
carb::tasking::TaskStorageKey: An opaque handle representing a Task Storage slot.
Variables¶
carb::tasking::kInfinite: A constant for carb::tasking::ITasking wait functions indicating “infinite” timeout.
carb::tasking::kInvalidTaskContext: A specific value for TaskContext that indicates a non-valid TaskContext.
carb::tasking::kInvalidTaskStorageKey: Represents an invalid TaskStorageKey.
carb::tasking::kMaxFibers: The absolute maximum number of fibers that carb::tasking::ITasking will create.