MRPT logo

mrpt::synch::CSemaphore Class Reference

A semaphore for inter-thread synchronization. More...

#include <mrpt/synch/CSemaphore.h>

List of all members.

Public Member Functions

 CSemaphore (unsigned int initialCount, unsigned int maxCount, const std::string &name=std::string(""))
 Creates a semaphore.
 ~CSemaphore ()
 Destructor.
bool waitForSignal (unsigned int timeout_ms=0)
 Blocks until the count of the semaphore to be non-zero.
void release (unsigned int increaseCount=1)
 Increments the count of the semaphore by a given amount.

Protected Attributes

utils::CReferencedMemBlock m_data


Detailed Description

A semaphore for inter-thread synchronization.

The state of a semaphore object is signaled when its count is greater than zero, and nonsignaled when its count is equal to zero. The initialCount parameter specifies the initial count. Each time a waiting thread is released because of the semaphore's signaled state, the count of the semaphore is decreased by one. Use the release function to increment a semaphore's count by a specified amount. The count can never be less than zero or greater than the value specified in the maxCount parameter.

Definition at line 52 of file CSemaphore.h.


Constructor & Destructor Documentation

mrpt::synch::CSemaphore::CSemaphore ( unsigned int  initialCount,
unsigned int  maxCount,
const std::string &  name = std::string("") 
)

Creates a semaphore.

mrpt::synch::CSemaphore::~CSemaphore (  ) 

Destructor.


Member Function Documentation

void mrpt::synch::CSemaphore::release ( unsigned int  increaseCount = 1  ) 

Increments the count of the semaphore by a given amount.

bool mrpt::synch::CSemaphore::waitForSignal ( unsigned int  timeout_ms = 0  ) 

Blocks until the count of the semaphore to be non-zero.

Parameters:
timeout_ms The timeout in milliseconds, or set to zero to wait indefinidely.
Returns:
true if the semaphore has been signaled, false on timeout or any other error.


Member Data Documentation

Definition at line 55 of file CSemaphore.h.




Page generated by Doxygen 1.5.8 for MRPT 0.6.5 SVN: at Thu Feb 26 02:18:33 EST 2009