Samchon Framework for CPP  1.0.0
UniqueWriteLock.cpp
1 #include <samchon/library/RWMutex.hpp>
2 using namespace samchon::library;
3 
4 /* -----------------------------------------------------------
5  CONSTRUCTORS
6 ----------------------------------------------------------- */
8 {
9  if(doLock == true)
10  mtx.writeLock();
11 
12  this->mtx = &mtx;
13  this->isLocked = doLock;
14 }
16 {
17  //MOVE
18  this->mtx = obj.mtx;
19  this->isLocked = obj.isLocked;
20 
21  //TRUNCATE
22  obj.mtx = nullptr;
23  obj.isLocked = nullptr;
24 }
26 {
27  if(isLocked == true)
28  mtx->writeUnlock();
29 }
30 
31 /* -----------------------------------------------------------
32  LOCKERS
33 ----------------------------------------------------------- */
35 {
36  if(isLocked == true)
37  return;
38 
39  mtx->writeLock();
40  isLocked = true;
41 }
43 {
44  if(isLocked == false)
45  return;
46 
47  mtx->writeUnlock();
48  isLocked = false;
49 }
void unlock()
Unlock on writing.
bool isLocked
Whether the mutex was locked by UniqueLock.
Package of libraries.
Definition: library.hpp:84
UniqueWriteLock(RWMutex &, bool=true)
Construct from mutex.
void writeUnlock()
Unlock on writing.
Definition: RWMutex.cpp:61
Unique lock for writing.
void writeLock()
Lock on writing.
Definition: RWMutex.cpp:53
RWMutex * mtx
Managed mutex.