[#BloombergLP-bslmt] = xref:BloombergLP.adoc[BloombergLP]::bslmt :relfileprefix: ../ :mrdocs: Package namespace for multithreading components. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/Barrier.adoc[`Barrier`] | This class defines a thread barrier. | xref:BloombergLP/bslmt/ChronoUtil.adoc[`ChronoUtil`] | This `struct` provides a namespace for utility functions that operate on `bsl::chrono` facilities. | xref:BloombergLP/bslmt/Condition.adoc[`Condition`] | This `class` implements a portable inter‐thread signaling primitive. | xref:BloombergLP/bslmt/ConditionImpl-02.adoc[`ConditionImpl`] | Platform‐specific condition variable implementation. | xref:BloombergLP/bslmt/Configuration.adoc[`Configuration`] | Namespace for utilities that manage default `bslmt` configuration values. | xref:BloombergLP/bslmt/EntryPointFunctorAdapter.adoc[`EntryPointFunctorAdapter`] | Adapter holding a copy of an invokable object and its allocator. | xref:BloombergLP/bslmt/EntryPointFunctorAdapterUtil.adoc[`EntryPointFunctorAdapterUtil`] | Utility functions for `EntryPointFunctorAdapter`. | xref:BloombergLP/bslmt/EntryPointFunctorAdapter_Base.adoc[`EntryPointFunctorAdapter_Base`] | This component‐private type provides a non‐templated view of `EntryPointFunctorAdapter` for accessing the invoker function. Do not use outside this component. | xref:BloombergLP/bslmt/FastPostSemaphore.adoc[`FastPostSemaphore`] | This class implements a semaphore type, optimized for `post`, for thread synchronization. | xref:BloombergLP/bslmt/FastPostSemaphoreImpl.adoc[`FastPostSemaphoreImpl`] | This class implements a semaphore type, optimized for `post`, for thread synchronization. | xref:BloombergLP/bslmt/FastPostSemaphoreImplWorkaroundUtil.adoc[`FastPostSemaphoreImplWorkaroundUtil`] | This class provides utility functions for workarounds to system level issues for `FastPostSemaphoreImpl`. | xref:BloombergLP/bslmt/Latch.adoc[`Latch`] | Provide a single‐use thread synchronization mechanism on an event count. | xref:BloombergLP/bslmt/LockGuard.adoc[`LockGuard`] | This class template implements a guard for acquisition and release of synchronization resources (i.e., locks). | xref:BloombergLP/bslmt/LockGuardTryLock.adoc[`LockGuardTryLock`] | This class template implements a guard for tentative acquisition and release of synchronization resources (i.e., locks). | xref:BloombergLP/bslmt/LockGuardUnlock.adoc[`LockGuardUnlock`] | This class template implements a guard for release and reacquisition of synchronization resources (i.e., locks). | xref:BloombergLP/bslmt/LockReadGuard.adoc[`LockReadGuard`] | DEPRECATED: Use `ReadLockGuard` instead. | xref:BloombergLP/bslmt/LockWriteGuard.adoc[`LockWriteGuard`] | DEPRECATED: Use `WriteLockGuard` instead. | xref:BloombergLP/bslmt/MeteredMutex.adoc[`MeteredMutex`] | Mutex that tracks cumulative hold time and wait time. | xref:BloombergLP/bslmt/Mutex.adoc[`Mutex`] | Portable wrapper of an OS‐level mutex for intra‐process synchronization. | xref:BloombergLP/bslmt/MutexImpl-09.adoc[`MutexImpl`] | Primary template for platform‐specific mutex implementations. | xref:BloombergLP/bslmt/Once.adoc[`Once`] | Gate‐keeper class for code that should only execute once per process. | xref:BloombergLP/bslmt/OnceGuard.adoc[`OnceGuard`] | Guard class for using `Once` safely. | xref:BloombergLP/bslmt/Platform.adoc[`Platform`] | This `struct` provides a namespace for concurrency trait definitions. | xref:BloombergLP/bslmt/QLock.adoc[`QLock`] | Small, statically‐initializable mutex for serialized resource access. | xref:BloombergLP/bslmt/QLockGuard.adoc[`QLockGuard`] | Guard that acquires and releases a lock on a `QLock` object. | xref:BloombergLP/bslmt/QLock_EventFlag.adoc[`QLock_EventFlag`] | [*PRIVATE*]Thread‐safe flag for signaling an event between two threads. | xref:BloombergLP/bslmt/RWMutex.adoc[`RWMutex`] | Platform‐independent interface to a reader‐writer mutex. | xref:BloombergLP/bslmt/RWMutexImpl-0d.adoc[`RWMutexImpl`] | Platform‐specific implementation of a readers‐writer mutex. | xref:BloombergLP/bslmt/ReadLockGuard.adoc[`ReadLockGuard`] | This class template implements a guard for acquisition and release of read synchronization resources (i.e., reader locks). | xref:BloombergLP/bslmt/ReadLockGuardTryLock.adoc[`ReadLockGuardTryLock`] | This class template implements a guard for tentative acquisition and release of read synchronization resources (i.e., reader locks). | xref:BloombergLP/bslmt/ReadLockGuardUnlock.adoc[`ReadLockGuardUnlock`] | This class template implements a guard for release and reacquisition of read synchronization resources (i.e., reader locks). | xref:BloombergLP/bslmt/ReaderWriterLock.adoc[`ReaderWriterLock`] | This class provides a multi‐reader/single‐writer lock mechanism. | xref:BloombergLP/bslmt/ReaderWriterMutex.adoc[`ReaderWriterMutex`] | This class provides a multi‐reader/single‐writer lock mechanism. | xref:BloombergLP/bslmt/ReaderWriterMutexImpl.adoc[`ReaderWriterMutexImpl`] | This class provides a multi‐reader/single‐writer lock mechanism. | xref:BloombergLP/bslmt/RecursiveMutex.adoc[`RecursiveMutex`] | Recursive mutex that can be locked multiple times by the same thread. | xref:BloombergLP/bslmt/RecursiveMutexImpl-0a.adoc[`RecursiveMutexImpl`] | Platform‐specific recursive mutex implementation (forward declaration). | xref:BloombergLP/bslmt/RecursivemutexImpl-02.adoc[`RecursivemutexImpl`] | Platform‐specific recursive mutex implementation (forward declaration). | xref:BloombergLP/bslmt/SaturatedTimeConversionImpUtil.adoc[`SaturatedTimeConversionImpUtil`] | Utility for saturating conversions between time representations. | xref:BloombergLP/bslmt/Semaphore.adoc[`Semaphore`] | This class implements a portable semaphore type for thread synchronization. It forwards all requests to an appropriate platform‐specific implementation. | xref:BloombergLP/bslmt/SemaphoreImpl-0a.adoc[`SemaphoreImpl`] | | xref:BloombergLP/bslmt/Sluice.adoc[`Sluice`] | This class controls the release of threads from a common synchronization point. | xref:BloombergLP/bslmt/TestUtil.adoc[`TestUtil`] | This `struct` provides a namespace for a suite of utility functions that facilitate the creation of BDE‐style test drivers. | xref:BloombergLP/bslmt/TestUtil_Guard.adoc[`TestUtil_Guard`] | This `class` defines an object that provides exclusive access to the critical sections defined by this component's macros. | xref:BloombergLP/bslmt/ThreadAttributes.adoc[`ThreadAttributes`] | This simply constrained (value‐semantic) attribute class characterizes a collection of thread attribute values. | xref:BloombergLP/bslmt/ThreadGroup.adoc[`ThreadGroup`] | Container for managing a group of joinable threads. | xref:BloombergLP/bslmt/ThreadUtil.adoc[`ThreadUtil`] | This `struct` provides a suite of portable utility functions for managing threads. | xref:BloombergLP/bslmt/ThreadUtilImpl-0f.adoc[`ThreadUtilImpl`] | Platform‐specific implementation of `ThreadUtil`. | xref:BloombergLP/bslmt/ThroughputBenchmark.adoc[`ThroughputBenchmark`] | Mechanism for multi‐threaded throughput performance testing. | xref:BloombergLP/bslmt/ThroughputBenchmarkResult.adoc[`ThroughputBenchmarkResult`] | Repository for multi‐threaded throughput benchmark results. | xref:BloombergLP/bslmt/ThroughputBenchmarkResult_TestUtil.adoc[`ThroughputBenchmarkResult_TestUtil`] | Test utility for accessing private throughput result attributes. | xref:BloombergLP/bslmt/ThroughputBenchmark_TestUtil.adoc[`ThroughputBenchmark_TestUtil`] | This class implements a test utility that gives the test driver access to the unexposed data members of `ThroughputBenchmark`. | xref:BloombergLP/bslmt/ThroughputBenchmark_WorkData.adoc[`ThroughputBenchmark_WorkData`] | Data transferred to ThroughputBenchmark_WorkFunction. | xref:BloombergLP/bslmt/ThroughputBenchmark_WorkFunction.adoc[`ThroughputBenchmark_WorkFunction`] | This class is the work function functor, being called for each work thread. | xref:BloombergLP/bslmt/TimedCompletionGuard.adoc[`TimedCompletionGuard`] | This class implements a guard for work completion within a specified duration. | xref:BloombergLP/bslmt/TimedSemaphore.adoc[`TimedSemaphore`] | This class implements a portable timed semaphore type for thread synchronization. It forwards all requests to an appropriate platform‐specific implementation. | xref:BloombergLP/bslmt/TimedSemaphoreImpl-09.adoc[`TimedSemaphoreImpl`] | Forward declaration of platform‐specific timed semaphore implementation. | xref:BloombergLP/bslmt/TryLockGuard.adoc[`TryLockGuard`] | DEPRECATED: Use `LockGuardTryLock` instead. | xref:BloombergLP/bslmt/Turnstile.adoc[`Turnstile`] | Provide a mechanism to meter time at a configured event rate. | xref:BloombergLP/bslmt/UnLockGuard.adoc[`UnLockGuard`] | This class is DEPRECATED. Use `LockGuardUnlock` instead. | xref:BloombergLP/bslmt/WriteLockGuard.adoc[`WriteLockGuard`] | This class template implements a guard for acquisition and release of write synchronization resources (i.e., writer locks). | xref:BloombergLP/bslmt/WriteLockGuardTryLock.adoc[`WriteLockGuardTryLock`] | This class template implements a guard for tentative acquisition and release of write synchronization resources (i.e., writer locks). | xref:BloombergLP/bslmt/WriteLockGuardUnlock.adoc[`WriteLockGuardUnlock`] | This class template implements a guard for release and reacquisition of write synchronization resources (i.e., writer locks). |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/operator_lshift.adoc[`operator<<`] | Write the value of the specified `object` to the specified output `stream` in a single‐line format. | xref:BloombergLP/bslmt/operator_eq.adoc[`operator==`] | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. | xref:BloombergLP/bslmt/operator_not_eq.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` objects do not have the same value, and `false` otherwise. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#