Wraps a interprocess_semaphore that can be placed in shared memory and can be shared between processes. More...
#include <interprocess_semaphore.hpp>
| Public Member Functions | |
| * | interprocess_semaphore (unsigned int initialCount) | 
| Creates a interprocess_semaphore with the given initial count.  More... | |
| ~interprocess_semaphore () | |
| Destroys the interprocess_semaphore.  More... | |
| void | post () | 
| Increments the interprocess_semaphore count.  More... | |
| void | wait () | 
| Decrements the interprocess_semaphore.  More... | |
| bool | try_wait () | 
| Decrements the interprocess_semaphore if the interprocess_semaphore's value is greater than zero and returns true.  More... | |
| bool | timed_wait (const boost::posix_time::ptime &abs_time) | 
| Decrements the interprocess_semaphore if the interprocess_semaphore's value is greater than zero and returns true.  More... | |
Wraps a interprocess_semaphore that can be placed in shared memory and can be shared between processes.
Allows timed lock tries
| 
 | inline | 
Creates a interprocess_semaphore with the given initial count.
interprocess_exception if there is an error.
| 
 | inline | 
Destroys the interprocess_semaphore.
Does not throw
| 
 | inline | 
Increments the interprocess_semaphore count.
If there are processes/threads blocked waiting for the interprocess_semaphore, then one of these processes will return successfully from its wait function. If there is an error an interprocess_exception exception is thrown.
References boost::interprocess::ipcdetail::spin_semaphore::post().
Referenced by boost::interprocess::ipcdetail::shm_named_semaphore::post().
| 
 | inline | 
Decrements the interprocess_semaphore if the interprocess_semaphore's value is greater than zero and returns true.
Otherwise, waits for the interprocess_semaphore to the posted or the timeout expires. If the timeout expires, the function returns false. If the interprocess_semaphore is posted the function returns true. If there is an error throws sem_exception
References boost::interprocess::ipcdetail::spin_semaphore::timed_wait().
Referenced by boost::interprocess::ipcdetail::shm_named_semaphore::timed_wait().
| 
 | inline | 
Decrements the interprocess_semaphore if the interprocess_semaphore's value is greater than zero and returns true.
If the value is not greater than zero returns false. If there is an error an interprocess_exception exception is thrown.
References boost::interprocess::ipcdetail::spin_semaphore::try_wait().
Referenced by boost::interprocess::ipcdetail::shm_named_semaphore::try_wait().
| 
 | inline | 
Decrements the interprocess_semaphore.
If the interprocess_semaphore value is not greater than zero, then the calling process/thread blocks until it can decrement the counter. If there is an error an interprocess_exception exception is thrown.
References boost::interprocess::ipcdetail::spin_semaphore::timed_wait(), boost::interprocess::timeout_when_waiting_error, and boost::interprocess::ipcdetail::spin_semaphore::wait().
Referenced by boost::interprocess::ipcdetail::shm_named_semaphore::wait().