Main MRPT website > C++ reference
MRPT logo
Public Member Functions | Protected Attributes
mrpt::synch::CSemaphore Class Reference

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.

#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.
virtual ~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.
std::string getName () const
 Get the name of the named semaphore or an empty string if it's unnamed.
bool isNamed () const
 Return true if this is a named semaphore.

Protected Attributes

utils::CReferencedMemBlock m_data
std::string m_name
 The name of the named semaphore, or empty if unnamed.

Constructor & Destructor Documentation

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

Creates a semaphore.

If name is not an empty string, a named semaphore is created. In that case if the semaphore didn't exist it's created. Otherwise, the existing semaphore is linked to this object and then initialCount and maxCount are ignored.

virtual mrpt::synch::CSemaphore::~CSemaphore ( ) [virtual]

Destructor.


Member Function Documentation

std::string mrpt::synch::CSemaphore::getName ( ) const [inline]

Get the name of the named semaphore or an empty string if it's unnamed.

Definition at line 84 of file CSemaphore.h.

bool mrpt::synch::CSemaphore::isNamed ( ) const [inline]

Return true if this is a named semaphore.

Definition at line 87 of file CSemaphore.h.

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_msThe 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 54 of file CSemaphore.h.

The name of the named semaphore, or empty if unnamed.

Definition at line 55 of file CSemaphore.h.




Page generated by Doxygen 1.7.5 for MRPT 0.9.5 SVN: at Thu Oct 13 21:25:36 UTC 2011