PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mutex.h File Reference
#include <ptlib/atomic.h>
#include <ptlib/semaphor.h>
#include "unix/ptlib/mutex.h"
Include dependency graph for mutex.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  PMutexExcessiveLockInfo
 
class  PTimedMutex
 This class defines a thread mutual exclusion object. More...
 
class  PCriticalSection
 This class implements critical section mutexes using the most efficient mechanism available on the host platform. More...
 

Macros

#define PMUTEX_CONSTRUCTED()
 
#define PMUTEX_DESTROYED()
 
#define PDECLARE_MUTEX_ARG_1(var)   struct PTimedMutex_##var : PTimedMutex { PTimedMutex_##var() : PTimedMutex(P_DEBUG_LOCATION) { } } var
 Declare a PReadWriteMutex with compiled file/line for deadlock debugging. More...
 
#define PDECLARE_MUTEX_ARG_2(var, nam)   struct PTimedMutex_##var : PTimedMutex { PTimedMutex_##var() : PTimedMutex(#nam ) { } } var
 
#define PDECLARE_MUTEX_ARG_3(var, nam, to)   struct PTimedMutex_##var : PTimedMutex { PTimedMutex_##var() : PTimedMutex(#nam,to ) { } } var
 
#define PDECLARE_MUTEX_PART1(narg, args)   PDECLARE_MUTEX_PART2(narg, args)
 
#define PDECLARE_MUTEX_PART2(narg, args)   PDECLARE_MUTEX_ARG_##narg args
 
#define PDECLARE_MUTEX(...)   PDECLARE_MUTEX_PART1(PARG_COUNT(__VA_ARGS__), (__VA_ARGS__))
 
#define PDECLARE_INSTRUMENTED_MUTEX(var, name, waitTime, heldTime,...)   PDECLARE_MUTEX(var, name, MinDeadlockTime(waitTime))
 

Typedefs

typedef PTimedMutex PMutex
 

Macro Definition Documentation

#define PDECLARE_INSTRUMENTED_MUTEX (   var,
  name,
  waitTime,
  heldTime,
  ... 
)    PDECLARE_MUTEX(var, name, MinDeadlockTime(waitTime))
#define PDECLARE_MUTEX (   ...)    PDECLARE_MUTEX_PART1(PARG_COUNT(__VA_ARGS__), (__VA_ARGS__))
#define PDECLARE_MUTEX_ARG_1 (   var)    struct PTimedMutex_##var : PTimedMutex { PTimedMutex_##var() : PTimedMutex(P_DEBUG_LOCATION) { } } var

Declare a PReadWriteMutex with compiled file/line for deadlock debugging.

#define PDECLARE_MUTEX_ARG_2 (   var,
  nam 
)    struct PTimedMutex_##var : PTimedMutex { PTimedMutex_##var() : PTimedMutex(#nam ) { } } var
#define PDECLARE_MUTEX_ARG_3 (   var,
  nam,
  to 
)    struct PTimedMutex_##var : PTimedMutex { PTimedMutex_##var() : PTimedMutex(#nam,to ) { } } var
#define PDECLARE_MUTEX_PART1 (   narg,
  args 
)    PDECLARE_MUTEX_PART2(narg, args)
#define PDECLARE_MUTEX_PART2 (   narg,
  args 
)    PDECLARE_MUTEX_ARG_##narg args
#define PMUTEX_CONSTRUCTED ( )
#define PMUTEX_DESTROYED ( )

Typedef Documentation