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 |
1.7.1