PTLib
Version 2.14.3
|
This class defines a thread mutual exclusion object. More...
#include <mutex.h>
Public Member Functions | |
PTimedMutex () | |
PTimedMutex (const PTimedMutex &mutex) | |
Copy constructor is allowed but does not copy, allocating a new mutex. More... | |
PTimedMutex & | operator= (const PTimedMutex &) |
Assignment operator is allowed but does nothing. More... | |
virtual void | Wait () |
Block until the synchronisation object is available. More... | |
virtual PBoolean | Wait (const PTimeInterval &timeout) |
Block, for a time, until the synchronisation object is available. More... | |
virtual void | Signal () |
Signal that the synchronisation object is available. More... | |
PINLINE bool | Try () |
Try to enter the critical section for exlusive access. More... | |
![]() | |
PSync () | |
![]() | |
unsigned | GetTraceContextIdentifier () const |
Get PTRACE context identifier. More... | |
void | SetTraceContextIdentifier (unsigned id) |
void | GetTraceContextIdentifier (PObject &obj) |
void | GetTraceContextIdentifier (PObject *obj) |
void | SetTraceContextIdentifier (const PObject &obj) |
void | SetTraceContextIdentifier (const PObject *obj) |
virtual | ~PObject () |
virtual PObject * | Clone () const |
Create a copy of the class on the heap. More... | |
template<class CLS > | |
CLS * | CloneAs () const |
As for Clone() but converts to specified type. More... | |
virtual PINDEX | HashFunction () const |
This function yields a hash value required by the PDictionary class. More... | |
virtual const char * | GetClass (unsigned ancestor=0) const |
Get the current dynamic type of the object instance. More... | |
PBoolean | IsClass (const char *cls) const |
virtual PBoolean | InternalIsDescendant (const char *clsName) const |
Determine if the dynamic type of the current instance is a descendent of the specified class. More... | |
__inline const PObject * | PTraceObjectInstance () const |
virtual Comparison | Compare (const PObject &obj) const |
Compare the two objects and return their relative rank. More... | |
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const |
Determine the byte wise comparison of two objects. More... | |
bool | operator== (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator!= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator< (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator> (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator<= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator>= (const PObject &obj) const |
Compare the two objects. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
Additional Inherited Members | |
![]() | |
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
Result of the comparison operation performed by the Compare() function. More... | |
![]() | |
static const char * | Class () |
Get the name of the class as a C string. More... | |
static __inline const PObject * | PTraceObjectInstance (const char *) |
static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
Internal function caled from CompareObjectMemoryDirect() More... | |
![]() | |
PObject () | |
Constructor for PObject, made protected so cannot ever create one on its own. More... | |
![]() | |
unsigned | m_traceContextIdentifier |
![]() |
This class defines a thread mutual exclusion object.
A mutex is where a piece of code or data cannot be accessed by more than one thread at a time. To prevent this the PMutex is used in the following manner:
PMutex mutex;
...
mutex.Wait();
... critical section - only one thread at a time here.
mutex.Signal();
...
The first thread will pass through the Wait()
function, a second thread will block on that function until the first calls the Signal()
function, releasing the second thread.
PTimedMutex::PTimedMutex | ( | ) |
PTimedMutex::PTimedMutex | ( | const PTimedMutex & | mutex | ) |
Copy constructor is allowed but does not copy, allocating a new mutex.
Two copies of the same mutex information would be very bad.
|
inline |
Assignment operator is allowed but does nothing.
Overwriting the old mutex information would be very bad.
|
virtual |
Signal that the synchronisation object is available.
Implements PSync.
|
inline |
Try to enter the critical section for exlusive access.
Does not wait.
References Wait().
|
virtual |
|
virtual |
Block, for a time, until the synchronisation object is available.
Implements PSync.