RAUL 0.7.0
Public Member Functions

Raul::Semaphore Class Reference

Trivial wrapper around POSIX semaphores (zero memory overhead). More...

#include <Semaphore.hpp>

Inherits boost::noncopyable.

List of all members.

Public Member Functions

 Semaphore (unsigned int initial)
void reset (unsigned int initial)
bool has_waiter ()
void post ()
 Increment (and signal any waiters).
void wait ()
 Wait until count is > 0, then decrement.
bool try_wait ()
 Non-blocking version of wait().

Detailed Description

Trivial wrapper around POSIX semaphores (zero memory overhead).


Member Function Documentation

void Raul::Semaphore::post ( ) [inline]

Increment (and signal any waiters).

Realtime safe.

Referenced by Raul::Slave::whip().

void Raul::Semaphore::wait ( ) [inline]

Wait until count is > 0, then decrement.

Note that sem_wait always returns 0 in practice. It returns nonzero when run in GDB, so the while is necessary to allow debugging.

Obviously not realtime safe.

Referenced by Raul::Command::operator()().

bool Raul::Semaphore::try_wait ( ) [inline]

Non-blocking version of wait().

Returns:
true if decrement was successful (lock was acquired).

Realtime safe?


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