Shared lock, allows multiple readers but only one writer at a time. More...
#include <libppbase/base/SharedLock.h>
Public Types | |
enum | { UNLOCKED = 0, READ, WRITE, DYNAMIC } |
lock modes, states and priorities More... | |
Public Member Functions | |
SharedLock (size_t priority=DYNAMIC) | |
Constructor. | |
~SharedLock () | |
Destructor. | |
void | lock (size_t mode=READ) |
Locks this lock. | |
void | unlock () |
Unlocks this lock. | |
Protected Attributes | |
size_t | _priority |
priority setting (READ, WRITE or DYNAMIC) | |
Condition * | _rcond |
reader condition variable | |
size_t | _reader |
number of readers in case of _state == READ | |
size_t | _reader_waiting |
number of readers waiting | |
size_t | _state |
current lock state (UNLOCKED, READ or WRITE) | |
Condition * | _wcond |
writer condition variable | |
size_t | _writer_waiting |
number of writers waiting |
Shared lock, allows multiple readers but only one writer at a time.
anonymous enum |
base::SharedLock::SharedLock | ( | size_t | priority = DYNAMIC |
) |
Constructor.
priority | The access mode that has priority |
void base::SharedLock::lock | ( | size_t | mode = READ |
) |
Locks this lock.
mode | Lock mode, READ or WRITE |