Shared memory may be used by multiple processes. To synchronize access to
shared memory an FBB::SharedMutex may be defined inside a shared memory
segment. An FBB::SharedMutex allows clients to lock a shared memory
segment before reading or writing its contents. E.g., the Bobcat class
FBB::SharedSegment defines a SharedMutex in its shared memory segment.
The FBB::SharedMutex class uses the facilities offered by the
PThread library to implement shared memory locking. To force
unlocking a (possibly) locked shared memory segment, its destructor can be
called.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
-
CONSTRUCTORS
SharedMutex():
The default constructor initializes an FBB::SharedMutex object to a
shared memory mutex (using the PTHREAD_PROCESS_SHARED
attribute). As an FBB::SharedMutex object will normally be defined
inside a shared memory segment the object's memory is already
available. In this case placement new should be used to call the
constructor. E.g., if a shared memory segment is attached to the
current process at d_shared, and an FBB::SharedMutex should be
defined at d_shared's address, then the FBB::SharedMutex
object can be initialized like this:
new (d_shared) FBB::SharedMutex;
The copy and move constructors are not available.
The class's destructor releasea all of the current process's nested
shared memory segment locks. To destroy an FBB::SharedMuted object
that has been constructed using the placement new operator use
d_sharedMutex->~SharedMutex();
(assuming SharedMutex *d_sharedMutex points to the location where
placement new has previously initialized the FBB::SharedMutex
object.)
MEMBER FUNCTIONS
void lock() const:
When returning from this member, the current process has locked the
shared memory segment.
void unlock() const:
The object's lock of the shared memory segment is released.