NW4F Sys
Loading...
Searching...
No Matches
ut_CriticalSection.h
Go to the documentation of this file.
1#pragma once
2
3#include <nw/ut/ut_ScopedLock.h>
4#include <nw/ut/os/ut_Mutex.h>
5
6namespace nw { namespace ut {
7
9{
10public:
12 {
13 m_Mutex.Initialize();
14 }
15
17 {
18 m_Mutex.Finalize();
19 }
20
21 void Enter()
22 {
23 m_Mutex.Lock();
24 }
25
26 bool TryEnter()
27 {
28 return m_Mutex.TryLock();
29 }
30
31 void Leave()
32 {
33 m_Mutex.Unlock();
34 }
35
36 void Lock()
37 {
38 Enter();
39 }
40
41 bool TryLock()
42 {
43 return TryEnter();
44 }
45
46 void Unlock()
47 {
48 Leave();
49 }
50
51private:
53};
54static_assert(sizeof(CriticalSection) == 0x30, "nw::ut::CriticalSection size mismatch");
55
56template <>
58{
59private:
60 // NW_DISALLOW_COPY_AND_ASSIGN(ScopedLock); // TODO
61
62public:
63 explicit ScopedLock(CriticalSection& lockObj)
64 : m_LockObj(lockObj)
65 {
67 }
68
70 {
72 }
73
74private:
76};
77
78} }
Definition ut_CriticalSection.h:9
void Enter()
Definition ut_CriticalSection.h:21
bool TryLock()
Definition ut_CriticalSection.h:41
ut::Mutex m_Mutex
Definition ut_CriticalSection.h:52
void Lock()
Definition ut_CriticalSection.h:36
CriticalSection()
Definition ut_CriticalSection.h:11
~CriticalSection()
Definition ut_CriticalSection.h:16
bool TryEnter()
Definition ut_CriticalSection.h:26
void Unlock()
Definition ut_CriticalSection.h:46
void Leave()
Definition ut_CriticalSection.h:31
Definition ut_Mutex.h:8
Definition ut_CriticalSection.h:58
CriticalSection & m_LockObj
Definition ut_CriticalSection.h:75
~ScopedLock()
Definition ut_CriticalSection.h:69
ScopedLock(CriticalSection &lockObj)
Definition ut_CriticalSection.h:63
Definition ut_CriticalSection.h:6
Definition math_Constant.cpp:5