Samchon Framework for CPP
1.0.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
UniqueReadLock.cpp
1
#include <samchon/library/RWMutex.hpp>
2
using namespace
samchon::library
;
3
4
/* -----------------------------------------------------------
5
CONSTRUCTORS
6
----------------------------------------------------------- */
7
UniqueReadLock::UniqueReadLock
(
const
RWMutex
&mtx,
bool
doLock)
8
{
9
if
(doLock ==
true
)
10
mtx.
readLock
();
11
12
this->mtx = &
mtx
;
13
this->
isLocked
= doLock;
14
}
15
UniqueReadLock::UniqueReadLock
(
UniqueReadLock
&&obj)
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
}
25
UniqueReadLock::~UniqueReadLock
()
26
{
27
if
(
isLocked
==
true
)
28
mtx
->
readUnlock
();
29
}
30
31
/* -----------------------------------------------------------
32
LOCKERS
33
----------------------------------------------------------- */
34
void
UniqueReadLock::lock
()
const
35
{
36
if
(
isLocked
==
true
)
37
return
;
38
39
bool
*flag = (
bool
*)&
isLocked
;
40
41
mtx
->
readLock
();
42
*flag =
true
;
43
}
44
void
UniqueReadLock::unlock
()
const
45
{
46
if
(
isLocked
==
false
)
47
return
;
48
49
bool
*flag = (
bool
*)&
isLocked
;
50
51
mtx
->
readUnlock
();
52
*flag =
false
;
53
}
samchon::library::UniqueReadLock::lock
void lock() const
Lock on read.
Definition:
UniqueReadLock.cpp:34
samchon::library::UniqueReadLock::UniqueReadLock
UniqueReadLock(const RWMutex &, bool=true)
Construct from mutex.
Definition:
UniqueReadLock.cpp:7
samchon::library::UniqueReadLock::~UniqueReadLock
~UniqueReadLock()
Default Destructor.
Definition:
UniqueReadLock.cpp:25
samchon::library
Package of libraries.
Definition:
library.hpp:84
samchon::library::UniqueReadLock
Unique lock for reading.
Definition:
UniqueReadLock.hpp:39
samchon::library::RWMutex::readUnlock
void readUnlock() const
Unlock of read.
Definition:
RWMutex.cpp:39
samchon::library::UniqueReadLock::isLocked
bool isLocked
Whether the mutex was locked by UniqueLock.
Definition:
UniqueReadLock.hpp:50
samchon::library::RWMutex
rw_mutex
Definition:
RWMutex.hpp:33
samchon::library::UniqueReadLock::mtx
const RWMutex * mtx
Managed mutex.
Definition:
UniqueReadLock.hpp:45
samchon::library::UniqueReadLock::unlock
void unlock() const
Unlock of read.
Definition:
UniqueReadLock.cpp:44
samchon::library::RWMutex::readLock
void readLock() const
Lock on read.
Definition:
RWMutex.cpp:31
cpp
samchon
library
UniqueReadLock.cpp
Generated by
1.8.11