ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::ConditionVariable Class Reference

#include <itkConditionVariable.h>

+ Inheritance diagram for itk::ConditionVariable:
+ Collaboration diagram for itk::ConditionVariable:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef SmartPointer< SelfPointer
typedef ConditionVariable Self
typedef LightObject Superclass

Public Member Functions

void Broadcast ()
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
void Signal ()
void Wait (SimpleMutexLock *mutex)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 ConditionVariable ()
 ~ConditionVariable ()

Private Member Functions

 ConditionVariable (const Self &other)
const Selfoperator= (const Self &)

Private Attributes

ConditionVariableType m_ConditionVariable

Detailed Description

A thread synchronization object used to suspend execution until some condition on shared data is met.

A thread calls Wait() to suspend its execution until the condition is met. Each call to Signal() from an executing thread will then cause a single waiting thread to be released. A call to Signal() means, "signal that the condition is true." Broadcast() releases all threads waiting on the condition variable.

The ITK ConditionVariable implementation is consistent with the standard definition and use of condition variables in pthreads and other common thread libraries.

IMPORTANT: A condition variable always requires an associated SimpleMutexLock object. The mutex object is used to avoid a dangerous race condition when Wait() and Signal() are called simultaneously from two different threads.

On systems using pthreads, this implementation abstract the standard calls to the pthread condition variable. On Win32 systems, there is no system provided condition variable. This class implements a condition variable using a critical section, a semphore, an event and a number of counters. The implementation is almost an extract translation of the implementation presented by Douglas C Schmidt and Irfan Pyarali in "Strategies for Implementing POSIX Condition Variables on Win32". This article can be found at http://www.cs.wustl.edu/~schmidt/win32-cv-1.html

Definition at line 58 of file itkConditionVariable.h.


Member Typedef Documentation

Reimplemented from itk::LightObject.

Definition at line 65 of file itkConditionVariable.h.

Reimplemented from itk::LightObject.

Definition at line 64 of file itkConditionVariable.h.

Standard class typedefs.

Reimplemented from itk::LightObject.

Definition at line 62 of file itkConditionVariable.h.

Definition at line 63 of file itkConditionVariable.h.


Constructor & Destructor Documentation

itk::ConditionVariable::ConditionVariable ( const Self other) [private]

Member Function Documentation

Signal that the condition is true and release all waiting threads

virtual::itk::LightObject::Pointer itk::ConditionVariable::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::LightObject.

virtual const char* itk::ConditionVariable::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::LightObject.

static Pointer itk::ConditionVariable::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::LightObject.

const Self& itk::ConditionVariable::operator= ( const Self ) [private]

Signal that the condition is true and release one waiting thread

Suspend execution of this thread until the condition is signaled. The argument is a SimpleMutex object that must be locked prior to calling this method.


Member Data Documentation

Definition at line 91 of file itkConditionVariable.h.


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