Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::interprocess::interprocess_sharable_mutex Class Reference

Wraps a interprocess_sharable_mutex that can be placed in shared memory and can be shared between processes. More...

#include <interprocess_sharable_mutex.hpp>

Public Member Functions

 interprocess_sharable_mutex ()
 Constructs the sharable lock. More...
 
 ~interprocess_sharable_mutex ()
 Destroys the sharable lock. More...
 
void lock ()
 Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive or sharable ownership of the mutex, it waits until it can obtain the ownership. More...
 
bool try_lock ()
 Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. More...
 
bool timed_lock (const boost::posix_time::ptime &abs_time)
 Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive or sharable ownership of the mutex or abs_time is reached. More...
 
void unlock ()
 Precondition: The thread must have exclusive ownership of the mutex. More...
 
void lock_sharable ()
 Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. More...
 
bool try_lock_sharable ()
 Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. More...
 
bool timed_lock_sharable (const boost::posix_time::ptime &abs_time)
 Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. More...
 
void unlock_sharable ()
 Precondition: The thread must have sharable ownership of the mutex. More...
 

Friends

class interprocess_condition
 

Detailed Description

Wraps a interprocess_sharable_mutex that can be placed in shared memory and can be shared between processes.

Allows timed lock tries

Constructor & Destructor Documentation

boost::interprocess::interprocess_sharable_mutex::interprocess_sharable_mutex ( )
inline

Constructs the sharable lock.

Throws interprocess_exception on error.

boost::interprocess::interprocess_sharable_mutex::~interprocess_sharable_mutex ( )
inline

Destroys the sharable lock.

Does not throw.

Member Function Documentation

void boost::interprocess::interprocess_sharable_mutex::lock ( )
inline

Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive or sharable ownership of the mutex, it waits until it can obtain the ownership.

Throws: interprocess_exception on error.

References boost::interprocess::interprocess_condition::wait().

void boost::interprocess::interprocess_sharable_mutex::lock_sharable ( )
inline

Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership.

Throws: interprocess_exception on error.

References boost::multiprecision::backends::this, and boost::interprocess::interprocess_condition::wait().

bool boost::interprocess::interprocess_sharable_mutex::timed_lock ( const boost::posix_time::ptime abs_time)
inline

Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive or sharable ownership of the mutex or abs_time is reached.

Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

References boost::interprocess::scoped_lock< Mutex >::owns(), and boost::interprocess::interprocess_condition::timed_wait().

bool boost::interprocess::interprocess_sharable_mutex::timed_lock_sharable ( const boost::posix_time::ptime abs_time)
inline

Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached.

Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

References boost::interprocess::scoped_lock< Mutex >::owns(), boost::multiprecision::backends::this, and boost::interprocess::interprocess_condition::timed_wait().

bool boost::interprocess::interprocess_sharable_mutex::try_lock ( )
inline

Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting.

If no other thread has exclusive or sharable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

References boost::interprocess::scoped_lock< Mutex >::owns(), and boost::try_to_lock.

bool boost::interprocess::interprocess_sharable_mutex::try_lock_sharable ( )
inline

Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting.

If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

References boost::interprocess::scoped_lock< Mutex >::owns(), and boost::try_to_lock.

void boost::interprocess::interprocess_sharable_mutex::unlock ( )
inline

Precondition: The thread must have exclusive ownership of the mutex.

Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

References boost::interprocess::interprocess_condition::notify_all().

void boost::interprocess::interprocess_sharable_mutex::unlock_sharable ( )
inline

Precondition: The thread must have sharable ownership of the mutex.

Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

References boost::interprocess::interprocess_condition::notify_all(), and boost::interprocess::interprocess_condition::notify_one().

Friends And Related Function Documentation

friend class interprocess_condition
friend

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