|
PTLib
Version 2.18.8
|
This is a PCondMutex for which the conditional is the value of an integer. More...
#include <syncthrd.h>


Public Member Functions | |
Overrides from class PObject | |
| void | PrintOn (ostream &strm) const |
| Print the object on the stream. More... | |
Condition access functions | |
| virtual PBoolean | Condition () |
| This is the condition that must be met for the WaitCondition() function to acquire the mutex. More... | |
| operator int () const | |
| Get the current value of the condition variable. More... | |
| PIntCondMutex & | operator= (int newval) |
| Assign new condition value. More... | |
| PIntCondMutex & | operator++ () |
| Increment condition value. More... | |
| PIntCondMutex & | operator+= (int inc) |
| Add to condition value. More... | |
| PIntCondMutex & | operator-- () |
| Decrement condition value. More... | |
| PIntCondMutex & | operator-= (int dec) |
| Subtract from condition value. More... | |
Public Member Functions inherited from PCondMutex | |
| virtual void | WaitCondition () |
| This function attempts to acquire the mutex, but will block not only until the mutex is free, but also that the condition returned by the Condition() function is also met. More... | |
| virtual void | Signal () |
| If there are waiting (blocked) threads then unblock the first one that was blocked. More... | |
| virtual void | OnWait () |
| This function is called immediately before blocking on the condition in the WaitCondition() function. More... | |
Public Member Functions inherited from PTimedMutex | |
| PTimedMutex () | |
| PTimedMutex (const PDebugLocation &location, unsigned timeout=0) | |
| 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... | |
| ~PTimedMutex () | |
| Destruction. 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... | |
| PINLINE bool | Try () |
| Try to enter the critical section for exlusive access. More... | |
Public Member Functions inherited from PSync | |
| PSync () | |
| virtual bool | InstrumentedWait (const PTimeInterval &timeout, const PDebugLocation &) |
| As for Wait() but with location of call for instrumentation. Mostly used internally. More... | |
| virtual void | InstrumentedSignal (const PDebugLocation &) |
| As for Signal() but with location of call for instrumentation. Mostly used internally. More... | |
Public Member Functions inherited from PObject | |
| __inline unsigned | GetTraceContextIdentifier () const |
| Get PTRACE context identifier. More... | |
| __inline void | SetTraceContextIdentifier (unsigned id) |
| __inline void | SetTraceContextIdentifier (const PObject &obj) |
| __inline void | SetTraceContextIdentifier (const PObject *obj) |
| __inline void | CopyTraceContextIdentifier (PObject &obj) const |
| __inline void | CopyTraceContextIdentifier (PObject *obj) const |
| virtual | ~PObject () |
| __inline const char * | GetClass () const |
| __inline bool | IsClass (const char *name) const |
| __inline const PObject * | PTraceObjectInstance () const |
| 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 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 | ReadFrom (istream &strm) |
| Input the contents of the object from the stream. More... | |
Public Member Functions inherited from PMutexExcessiveLockInfo | |
| void | SetLocationName (const char *name) |
Protected Attributes | |
| int | value |
| int | target |
| Operation | operation |
Protected Attributes inherited from PCondMutex | |
| PSyncPoint | syncPoint |
Protected Attributes inherited from PTimedMutex | |
| PThreadIdentifier | m_lockerId |
| PThreadIdentifier | m_lastLockerId |
| PUniqueThreadIdentifier | m_lastUniqueId |
| unsigned | m_lockCount |
Protected Attributes inherited from PObject | |
| unsigned | m_traceContextIdentifier |
Protected Attributes inherited from PMutexExcessiveLockInfo | |
| PDebugLocation | m_location |
| unsigned | m_excessiveLockTimeout |
| atomic< bool > | m_excessiveLockActive |
| uint64_t | m_startHeldSamplePoint |
Construction | |
| enum | Operation { LT, LE, EQ, GE, GT } |
| defines possible operators on current value and target value More... | |
| PIntCondMutex (int value=0, int target=0, Operation operation=LE) | |
| Create a cond mutex using an integer. More... | |
Additional Inherited Members | |
Public Types inherited from PTimedMutex | |
| enum | DeadlockStackWalkModes { DeadlockStackWalkDisabled, DeadlockStackWalkEnabled, DeadlockStackWalkOnPhantomRelease, DeadlockStackWalkNoSymbols } |
Public Types inherited from PObject | |
| enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
Result of the comparison operation performed by the Compare() function. More... | |
Static Public Member Functions inherited from PObject | |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject &from) |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject *from) |
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject &from) |
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject *from) |
| static __inline const char * | Class () |
| static __inline const PObject * | PTraceObjectInstance (const char *) |
| static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
| template<typename T > | |
| static Comparison | Compare2 (T v1, T v2) |
| Compare two types, returning Comparison type. More... | |
| static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
| Internal function caled from CompareObjectMemoryDirect() More... | |
Static Public Attributes inherited from PTimedMutex | |
| static unsigned | ExcessiveLockWaitTime |
| static DeadlockStackWalkModes | DeadlockStackWalkMode |
Protected Member Functions inherited from PTimedMutex | |
| void | Construct () |
| void | PlatformConstruct () |
| bool | PlatformWait (const PTimeInterval &timeout) |
| void | PlatformSignal (const PDebugLocation *location) |
| void | InternalWait (const PDebugLocation *location) |
| void | InternalWaitComplete (uint64_t startWaitCycle, const PDebugLocation *location) |
| bool | InternalSignal (const PDebugLocation *location) |
Protected Member Functions inherited from PObject | |
| PObject () | |
| Constructor for PObject, made protected so cannot ever create one on its own. More... | |
Protected Member Functions inherited from PMutexExcessiveLockInfo | |
| PMutexExcessiveLockInfo () | |
| PMutexExcessiveLockInfo (const PDebugLocation &location, unsigned timeout) | |
| PMutexExcessiveLockInfo (const PMutexExcessiveLockInfo &other) | |
| virtual | ~PMutexExcessiveLockInfo () |
| void | Construct (unsigned timeout) |
| void | PrintOn (ostream &strm) const |
| void | ExcessiveLockPhantom (const PObject &mutex) const |
| virtual void | AcquiredLock (uint64_t startWaitCycle, bool readOnly, const PDebugLocation &location) |
| virtual void | ReleasedLock (const PObject &mutex, uint64_t startHeldSamplePoint, bool readOnly, const PDebugLocation &location) |
Static Protected Member Functions inherited from PMutexExcessiveLockInfo | |
| static unsigned | MinDeadlockTime (unsigned waitTime) |
This is a PCondMutex for which the conditional is the value of an integer.
Create a cond mutex using an integer.
| value | initial value if the integer |
| target | target vaue which causes the mutex to unlock |
| operation | comparison operator |
|
virtual |
This is the condition that must be met for the WaitCondition() function to acquire the mutex.
Implements PCondMutex.
|
inline |
Get the current value of the condition variable.
References value.
| PIntCondMutex& PIntCondMutex::operator++ | ( | ) |
Increment condition value.
Use the Wait() function to acquire the mutex, modify the value, then release the mutex, possibly releasing the thread in the WaitCondition() function if the condition was met by the operation.
| PIntCondMutex& PIntCondMutex::operator+= | ( | int | inc | ) |
Add to condition value.
Use the Wait() function to acquire the mutex, modify the value, then release the mutex, possibly releasing the thread in the WaitCondition() function if the condition was met by the operation.
| PIntCondMutex& PIntCondMutex::operator-- | ( | ) |
Decrement condition value.
Use the Wait() function to acquire the mutex, modify the value, then release the mutex, possibly releasing the thread in the WaitCondition() function if the condition was met by the operation.
| PIntCondMutex& PIntCondMutex::operator-= | ( | int | dec | ) |
Subtract from condition value.
Use the Wait() function to acquire the mutex, modify the value, then release the mutex, possibly releasing the thread in the WaitCondition() function if the condition was met by the operation.
| PIntCondMutex& PIntCondMutex::operator= | ( | int | newval | ) |
Assign new condition value.
Use the Wait() function to acquire the mutex, modify the value, then release the mutex, possibly releasing the thread in the WaitCondition() function if the condition was met by the operation.
|
virtual |
Print the object on the stream.
This will be of the form #"(value < target)"#.
Reimplemented from PTimedMutex.
|
protected |
|
protected |
|
protected |
Referenced by operator int().