Logo ROOT  
Reference Guide
TPosixMutex.h
Go to the documentation of this file.
1// @(#)root/thread:$Id$
2// Author: Fons Rademakers 25/06/97
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TPosixMutex
13#define ROOT_TPosixMutex
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TPosixMutex //
19// //
20// This class provides an interface to the posix mutex routines. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24#include "TMutexImp.h"
25
26#ifndef __CINT__
27#include <pthread.h>
28#else
29struct pthread_mutex_t;
30#endif
31
32class TPosixMutex : public TMutexImp {
33
34friend class TPosixCondition;
35
36private:
37 pthread_mutex_t fMutex; // the pthread mutex
38
39 constexpr static int kIsRecursive = BIT(14);
40
41public:
42 TPosixMutex(Bool_t recursive=kFALSE);
43 virtual ~TPosixMutex();
44
45 Int_t Lock();
46 Int_t UnLock();
47 Int_t TryLock();
48
49 ClassDef(TPosixMutex,0) // Posix mutex lock
50};
51
52#endif
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:326
#define BIT(n)
Definition: Rtypes.h:83
pthread_mutex_t fMutex
Definition: TPosixMutex.h:37
Int_t UnLock()
Unlock the mutex.
Definition: TPosixMutex.cxx:90
Int_t TryLock()
Try locking the mutex. Returns 0 if mutex can be locked.
Definition: TPosixMutex.cxx:82
static constexpr int kIsRecursive
Definition: TPosixMutex.h:39
TPosixMutex(Bool_t recursive=kFALSE)
Create a posix mutex lock.
Definition: TPosixMutex.cxx:29
Int_t Lock()
Lock the mutex.
Definition: TPosixMutex.cxx:74
virtual ~TPosixMutex()
TMutex dtor.
Definition: TPosixMutex.cxx:64