Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
osxcriticalsection.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
13
#include "
core/types.h
"
14
15
//------------------------------------------------------------------------------
16
namespace
OSX
17
{
18
class
OSXCriticalSection
19
{
20
public
:
22
OSXCriticalSection
();
24
~OSXCriticalSection
();
26
void
Enter
()
const
;
28
void
Leave
()
const
;
29
private
:
30
mutable
pthread_mutex_t
mutex
;
31
};
32
33
//------------------------------------------------------------------------------
36
inline
37
OSXCriticalSection::OSXCriticalSection
()
38
{
39
pthread_mutexattr_t mutexAttrs;
40
pthread_mutexattr_init(&mutexAttrs);
41
pthread_mutexattr_settype(&mutexAttrs, PTHREAD_MUTEX_RECURSIVE);
// allow nesting
42
int
res = pthread_mutex_init(&this->
mutex
, &mutexAttrs);
43
n_assert
(0 == res);
44
pthread_mutexattr_destroy(&mutexAttrs);
45
}
46
47
//------------------------------------------------------------------------------
50
inline
51
OSXCriticalSection::~OSXCriticalSection
()
52
{
53
int
res = pthread_mutex_destroy(&this->
mutex
);
54
n_assert
(0 == res);
55
}
56
57
//------------------------------------------------------------------------------
60
inline
void
61
OSXCriticalSection::Enter
()
const
62
{
63
pthread_mutex_lock(&this->
mutex
);
64
}
65
66
//------------------------------------------------------------------------------
69
inline
void
70
OSXCriticalSection::Leave
()
const
71
{
72
pthread_mutex_unlock(&this->
mutex
);
73
}
74
75
}
// namespace OSX
OSX::OSXCriticalSection::mutex
pthread_mutex_t mutex
Definition
osxcriticalsection.h:30
OSX::OSXCriticalSection::Leave
void Leave() const
leave the critical section
Definition
osxcriticalsection.h:70
OSX::OSXCriticalSection::~OSXCriticalSection
~OSXCriticalSection()
destructor
Definition
osxcriticalsection.h:51
OSX::OSXCriticalSection::Enter
void Enter() const
enter the critical section
Definition
osxcriticalsection.h:61
OSX::OSXCriticalSection::OSXCriticalSection
OSXCriticalSection()
constructor
Definition
osxcriticalsection.h:37
n_assert
#define n_assert(exp)
Definition
debug.h:50
OSX
Definition
osxsysfunc.h:21
types.h
code
foundation
threading
osx
osxcriticalsection.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.