All Classes Namespaces Functions Variables Groups Pages
QC_RWLock.dox.h
namespace Qore::Thread {
class RWLock : public AbstractSmartLock {
public:
constructor();
public:
copy();
public:
destructor();
public:
int getReadWaiting();
public:
int getWriteWaiting();
public:
bool lockOwner();
public:
int numReaders();
public:
nothing readLock();
public:
int readLock(timeout timeout_ms);
public:
bool readLockOwner();
public:
nothing readUnlock();
public:
int tryReadLock();
public:
int tryWriteLock();
public:
int writeLock(timeout timeout_ms);
public:
nothing writeLock();
public:
bool writeLockOwner();
public:
nothing writeUnlock();
};
};
Qore::Thread::AbstractSmartLock
The abstract base class for locks that support the internal API for use with the Condition class...
Definition: QC_AbstractSmartLock.dox.h:13
Qore::Thread::RWLock::writeLock
nothing writeLock()
Acquires the write lock; blocks if the read lock is already acquired by another thread.
Qore::Thread::RWLock::getReadWaiting
int getReadWaiting()
Returns the number of threads waiting on the read lock.
Qore::Thread::RWLock::writeLockOwner
bool writeLockOwner()
Returns True if the current thread is holding the write lock, False if not.
Qore::Thread::RWLock::readLockOwner
bool readLockOwner()
Returns True if the current thread is holding the read lock, False if not.
Qore::Thread::RWLock::tryWriteLock
int tryWriteLock()
Acquires the write lock only if it can be acquired immediately.
Qore::Thread::RWLock::destructor
destructor()
Destroys the RWLock object.
Qore::Thread::RWLock::constructor
constructor()
Creates the RWLock object.
Qore::Thread::RWLock::readUnlock
nothing readUnlock()
Decrements the read lock counter and releases the read lock if the counter is zero. If at least one thread is blocked trying to acquire the write lock and the read counter reaches zero, then one thread waiting on the write lock is woken up.
Qore::Thread::RWLock::readLock
nothing readLock()
Acquires the read lock; blocks if the write lock is already acquired by another thread.
Qore::Thread::RWLock::writeUnlock
nothing writeUnlock()
Releases the write lock, if any readers are waiting, wakes up all readers, otherwise if any writers a...
Qore::Thread::RWLock::copy
copy()
Creates a new RWLock object, not based on the original.
Qore::Thread::RWLock::getWriteWaiting
int getWriteWaiting()
Returns the number of threads waiting on the write lock.
Qore::Thread::RWLock::lockOwner
bool lockOwner()
Returns True if the current thread is holding either the read lock or the write lock, False if not.
Qore::Thread::RWLock
The RWLock class implements a read-write thread lock.
Definition: QC_RWLock.dox.h:38
Qore::Thread::RWLock::tryReadLock
int tryReadLock()
Acquires the read lock only if it can be acquired immediately.
Qore::Thread::RWLock::numReaders
int numReaders()
Returns the read lock count.