Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TWin32Mutex.h
Go to the documentation of this file.
1 // @(#)root/thread:$Id$
2 // Author: Bertrand Bellenot 20/10/2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, 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_TWin32Mutex
13 #define ROOT_TWin32Mutex
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TWin32Mutex //
19 // //
20 // This class provides an interface to the Win32 mutex routines. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TMutexImp.h"
25 
26 #include "Windows4Root.h"
27 
28 #ifdef __CINT__
29 struct CRITICAL_SECTION;
30 #endif
31 
32 class TWin32Mutex : public TMutexImp {
33 
34 friend class TWin32Condition;
35 
36 private:
37  CRITICAL_SECTION fCritSect;
38 
39  enum EStatusBits { kIsRecursive = BIT(14) };
40 
41 public:
42  TWin32Mutex(Bool_t recursive=kFALSE);
43  virtual ~TWin32Mutex();
44 
45  Int_t Lock();
46  Int_t UnLock();
47  Int_t TryLock();
48 
49  ClassDef(TWin32Mutex,0) // Win32 mutex lock
50 };
51 
52 #endif