EUDAQ
 All Classes Namespaces Files Functions Variables Pages
Mutex.hh
1 #ifndef H_EUDAQ_MUTEX
2 #define H_EUDAQ_MUTEX
3 
4 #include "eudaq/Platform.hh"
5 
6 namespace eudaq {
7 
8  class DLLEXPORT Mutex {
9  public:
10  Mutex();
11  ~Mutex();
12  int Lock();
13  int TryLock();
14  int UnLock();
15 
16  private:
17  class Impl;
18  Impl *m_impl;
19  };
20 
21  class DLLEXPORT MutexLock {
22  public:
23  MutexLock(Mutex &m, bool lock = true);
24  ~MutexLock();
25  void Lock();
26  void Release();
27 
28  private:
29  Mutex &m_mutex;
30  bool m_locked;
31  };
32 
33  // class MutexTryLock {
34  // public:
35  // MutexTryLock(Mutex & m);
36  // ~MutexTryLock();
37  // void Release();
38  // operator bool () const;
39  // private:
40  // Mutex & m_mutex;
41  // bool m_locked;
42  // };
43 }
44 
45 #endif // H_EUDAQ_MUTEX
Definition: Mutex.hh:8
Definition: Mutex.cc:8
Definition: Mutex.hh:21