blocxx
BLOCXX_NAMESPACE::ThreadBarrier Class Reference

The ThreadBarrier class is used to synchronize threads. More...

#include <ThreadBarrier.hpp>

Public Member Functions

 ThreadBarrier (UInt32 threshold)
 Constructor.
 
void wait ()
 Synchronize participating threads at the barrier.
 
 ~ThreadBarrier ()
 
 ThreadBarrier (const ThreadBarrier &x)
 
ThreadBarrieroperator= (const ThreadBarrier &x)
 

Private Attributes

IntrusiveReference< ThreadBarrierImplm_impl
 

Detailed Description

The ThreadBarrier class is used to synchronize threads.

Each thread that calls wait() will block until threshold number of threads has called wait() This class is freely copyable. All copies reference the same underlying implementation.

Note that descriptions of what exceptions may be thrown assumes that the object is used correctly, i.e., method preconditions are satsified.

Definition at line 59 of file ThreadBarrier.hpp.

Constructor & Destructor Documentation

◆ ThreadBarrier() [1/2]

BLOCXX_NAMESPACE::ThreadBarrier::ThreadBarrier ( UInt32 threshold)

Constructor.

Parameters
thresholdThe number of threads that must call wait() before any of them successfully return from the call. The value specified by threshold must be greater than zero.
Exceptions
ThreadBarrierExceptionif needed system resources exhausted.
std::bad_allocif memory exhausted.

Definition at line 166 of file ThreadBarrier.cpp.

References BLOCXX_ASSERT, and m_impl.

Referenced by operator=(), and ThreadBarrier().

◆ ~ThreadBarrier()

BLOCXX_NAMESPACE::ThreadBarrier::~ThreadBarrier ( )

Definition at line 177 of file ThreadBarrier.cpp.

◆ ThreadBarrier() [2/2]

BLOCXX_NAMESPACE::ThreadBarrier::ThreadBarrier ( const ThreadBarrier & x)

Definition at line 181 of file ThreadBarrier.cpp.

References m_impl, and ThreadBarrier().

Member Function Documentation

◆ operator=()

ThreadBarrier & BLOCXX_NAMESPACE::ThreadBarrier::operator= ( const ThreadBarrier & x)

Definition at line 186 of file ThreadBarrier.cpp.

References m_impl, and ThreadBarrier().

◆ wait()

void BLOCXX_NAMESPACE::ThreadBarrier::wait ( )

Synchronize participating threads at the barrier.

The calling thread shall block until the required number of threads have called wait().

Exceptions
ThreadBarrierException(programmer error only)
ThreadCancelledException

Definition at line 172 of file ThreadBarrier.cpp.

References m_impl.

Referenced by BLOCXX_NAMESPACE::Thread::start(), and BLOCXX_NAMESPACE::Thread::threadRunner().

Member Data Documentation

◆ m_impl

IntrusiveReference<ThreadBarrierImpl> BLOCXX_NAMESPACE::ThreadBarrier::m_impl
private

Definition at line 87 of file ThreadBarrier.hpp.

Referenced by operator=(), ThreadBarrier(), ThreadBarrier(), and wait().


The documentation for this class was generated from the following files: