You.i Engine
YiAutoMutex.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_AUTOMUTEX_H_
3 #define _YI_AUTOMUTEX_H_
4 
5 #include "thread/YiMutex.h"
6 
24 {
25 public:
29  CYIAutoMutex(CYIMutex &rMutex);
30 
34  ~CYIAutoMutex();
35 
39  bool Relock();
40 
44  bool Unlock();
45 
46 private:
47  CYIAutoMutex(const CYIAutoMutex &);
48  CYIAutoMutex &operator=(const CYIAutoMutex &);
49 
50  CYIMutex &m_rMutex;
51 };
52 
55 inline CYIAutoMutex::CYIAutoMutex(CYIMutex &rMutex) : m_rMutex(rMutex)
56 {
57  m_rMutex.Lock();
58 }
59 
61 {
62  m_rMutex.Unlock();
63 }
64 
65 inline bool CYIAutoMutex::Relock()
66 {
67  return m_rMutex.Lock();
68 }
69 
70 inline bool CYIAutoMutex::Unlock()
71 {
72  return m_rMutex.Unlock();
73 }
74 
75 #endif /* _YI_AUTOMUTEX_H_ */
Definition: YiMutex.h:110
bool Unlock()
bool Unlock()
Definition: YiAutoMutex.h:70
CYIAutoMutex(CYIMutex &rMutex)
Definition: YiAutoMutex.h:55
bool Lock()
~CYIAutoMutex()
Definition: YiAutoMutex.h:60
bool Relock()
Definition: YiAutoMutex.h:65
Definition: YiAutoMutex.h:23