acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
pmutex_lock.h
1
//
2
// Created by camilo on 13/02/2021. <3TBS_!!
3
//
4
#pragma once
5
6
7
class
pmutex_lock
8
{
9
public
:
10
11
12
pthread_mutex_t * m_pmutex;
13
14
bool
m_bLock;
15
16
17
pmutex_lock(pthread_mutex_t * pmutex,
bool
bStartLocked =
true
) :
18
m_pmutex(pmutex),
19
m_bLock(
false
)
20
{
21
22
if
(bStartLocked)
23
{
24
25
lock();
26
27
}
28
29
}
30
31
32
~pmutex_lock()
33
{
34
35
unlock();
36
37
}
38
39
40
void
lock()
41
{
42
43
if
(::is_null(m_pmutex))
44
{
45
46
return
;
47
48
}
49
50
pthread_mutex_lock(m_pmutex);
51
52
m_bLock =
true
;
53
54
}
55
56
57
void
unlock()
58
{
59
60
if
(::is_null(m_pmutex))
61
{
62
63
return
;
64
65
}
66
67
if
(m_bLock)
68
{
69
70
m_bLock =
false
;
71
72
pthread_mutex_unlock(m_pmutex);
73
74
}
75
76
}
77
78
};
79
80
81
operating_system
ansi
pmutex_lock.h
Generated by
1.17.0