libUTL++
|
Read/write lock. More...
#include <RWlock.h>
Public Member Functions | |
bool | haveWriteLock () const |
Does the calling thread hold a write-lock? More... | |
void | lock (uint_t mode) |
Acquire read- or write-lock. More... | |
void | rdlock () |
Acquire read-lock. More... | |
void | wrlock () |
Acquire write-lock. More... | |
bool | trylock (uint_t mode) |
Try to acquire read- or write-lock (without blocking). More... | |
bool | tryrdlock () |
Try to acquire read-lock (without blocking). More... | |
bool | trywrlock () |
Try to acquire write-lock (without blocking). More... | |
void | unlock () |
Release previously acquired lock. More... | |
Public Member Functions inherited from utl::Object | |
void | clear () |
Revert to initial state. More... | |
virtual int | compare (const Object &rhs) const |
Compare with another object. More... | |
virtual void | copy (const Object &rhs) |
Copy another instance. More... | |
virtual void | vclone (const Object &rhs) |
Make an exact copy of another instance. More... | |
virtual void | steal (Object &rhs) |
"Steal" the internal representation from another instance. More... | |
virtual void | dump (Stream &os, uint_t level=uint_t_max) const |
Dump a human-readable representation of self to the given output stream. More... | |
void | dumpWithClassName (Stream &os, uint_t indent=4, uint_t level=uint_t_max) const |
Front-end for dump() that prints the object's class name. More... | |
virtual const Object & | getKey () const |
Get the key for this object. More... | |
bool | hasKey () const |
Determine whether or not the object has a key. More... | |
virtual const Object & | getProxiedObject () const |
Get the proxied object (= self if none). More... | |
virtual Object & | getProxiedObject () |
Get the proxied object (= self if none). More... | |
virtual size_t | hash (size_t size) const |
Get the hash code for the object. More... | |
bool | _isA (const RunTimeClass *runTimeClass) const |
Determine whether self's class is a descendent of the given class. More... | |
virtual String | toString () const |
Return a string representation of self. More... | |
operator String () const | |
Conversion to String. More... | |
size_t | allocatedSize () const |
Get the total allocated size of this object. More... | |
virtual size_t | innerAllocatedSize () const |
Get the "inner" allocated size. More... | |
virtual void | addOwnedIt (const class FwdIt *it) const |
Notify self that it owns the given iterator. More... | |
virtual void | removeOwnedIt (const class FwdIt *it) const |
Notify self that the given owned iterator has been destroyed. More... | |
bool | operator< (const Object &rhs) const |
Less-than operator. More... | |
bool | operator<= (const Object &rhs) const |
Less-than-or-equal-to operator. More... | |
bool | operator> (const Object &rhs) const |
Greater-than operator. More... | |
bool | operator>= (const Object &rhs) const |
Greater-than-or-equal-to operator. More... | |
bool | operator== (const Object &rhs) const |
Equal-to operator. More... | |
bool | operator!= (const Object &rhs) const |
Unequal-to operator. More... | |
void | serializeIn (Stream &is, uint_t mode=ser_default) |
Serialize from an input stream. More... | |
void | serializeOut (Stream &os, uint_t mode=ser_default) const |
Serialize to an output stream. More... | |
virtual void | serialize (Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize to or from a stream. More... | |
void | serializeOutBoxed (Stream &os, uint_t mode=ser_default) const |
Serialize a boxed object to an output stream. More... | |
Public Member Functions inherited from utl::NamedObjectMI | |
NamedObjectMI () | |
Constructor. | |
NamedObjectMI (const String &name) | |
Constructor. More... | |
void | clear () |
Clear the name. More... | |
const String & | getName () const |
Get the name. More... | |
const String * | getNamePtr () const |
Get the address of the name. More... | |
void | setName (const String &name) |
Set the name. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from utl::Object | |
static Object * | serializeInNullable (Stream &is, uint_t mode=ser_default) |
Serialize a nullptr-able object from an input stream. More... | |
static void | serializeOutNullable (const Object *object, Stream &os, uint_t mode=ser_default) |
Serialize a nullptr-able object to an output stream. More... | |
static void | serializeNullable (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize a nullptr-able object to or from a stream. More... | |
static Object * | serializeInBoxed (Stream &is, uint_t mode=ser_default) |
Serialize a boxed object from an input stream. More... | |
static void | serializeBoxed (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize a boxed object to or from a stream. More... | |
Read/write lock.
Multiple readers may run concurrently, but a writer must have exclusive access. An RWlock is an efficient way to control access to a shared data structure where reads are much more frequent than writes.
bool utl::RWlock::haveWriteLock | ( | ) | const |
Does the calling thread hold a write-lock?
|
inline |
Acquire read- or write-lock.
mode | (io_rd : read-lock, io_wr : write-lock) |
Definition at line 50 of file RWlock.h.
References utl::io_rd.
void utl::RWlock::rdlock | ( | ) |
Acquire read-lock.
void utl::RWlock::wrlock | ( | ) |
Acquire write-lock.
|
inline |
Try to acquire read- or write-lock (without blocking).
mode | (io_rd : read-lock, io_wr : write-lock) |
Definition at line 66 of file RWlock.h.
References utl::deInit(), utl::init(), and utl::io_rd.
bool utl::RWlock::tryrdlock | ( | ) |
Try to acquire read-lock (without blocking).
bool utl::RWlock::trywrlock | ( | ) |
Try to acquire write-lock (without blocking).
void utl::RWlock::unlock | ( | ) |
Release previously acquired lock.