carb::thread
-
namespace thread
Namespace for all threading operations.
Classes
carb::thread::AtomicBackoff: A utility class for providing a growing number of pause instructions, followed by yielding.
carb::thread::ThreadLocal: Base template.
carb::thread::ThreadLocal< T, false >: A class for declaring a dynamic thread-local variable (Large/Non-trivial specialization).
carb::thread::ThreadLocal< T, true >: A class for declaring a dynamic thread-local variable (Trivial/Pointer/POD specialization).
carb::thread::mutex: A Carbonite implementation of std::mutex .
carb::thread::recursive_mutex: A Carbonite implementation of std::recursive_mutex .
carb::thread::recursive_shared_mutex: A recursive shared mutex.
carb::thread::shared_mutex: A shared mutex implementation conforming to C++17's shared_mutex .
Enumerations
carb::thread::RelayResult: Possible result codes for Framework::runRelayTask().
Functions
carb::thread::getAffinity: Gets the current CPU Affinity for the thread.
carb::thread::getName: Retrieves the name of the thread previously set with setName() .
carb::thread::hardware_concurrency: Similar to
std::thread::hardware_concurrency()
, but pays attention to docker cgroup config and CPU limits.carb::thread::setAffinity: Sets the CPU affinity for the given thread handle.
carb::thread::setAffinity: Sets the CPU Affinity for the thread.
carb::thread::setName: Sets the name of the given thread.
Namespaces
carb::thread::detail: Namespace for Carbonite private threading details.
Structs
carb::thread::IThreadUtil: An interface to provide various thread utility operations.
carb::thread::RelayTaskDesc: A descriptor of the relay task to be performed.
carb::thread::futex: Futex namespace.
Typedefs
carb::thread::CpuMaskVector: Each entry in the vector is a bitmask for a set of CPUs.
carb::thread::ProcessId: The type for a process ID.
carb::thread::RecursiveSpinlock: A spinlock implementation that allows recursion.
carb::thread::RelayFlags: Base type for flags to the task relay system.
carb::thread::RelayTaskFn: Prototype for a relayed task function.
carb::thread::Spinlock: A spinlock implementation that does not allow recursion.
carb::thread::ThreadId: The type for a thread ID.
carb::thread::shared_lock: Alias for
std::shared_lock
.
Variables
carb::thread::fRelayAvailableFlagsMask: Flags available for use in the relay task itself.
carb::thread::fRelayFlagBlocking: Flag to indicate that a relay task should block until the task completes.
carb::thread::fRelayFlagForce: Force the execution of the task even if a failure related to relaying the task occurs.
carb::thread::kCpusPerMask: The number of CPUs represented by an individual cpu mask.