Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
criticalsection.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
14
#include "
core/config.h
"
15
#if (__WIN32__)
16
#include "
threading/win32/win32criticalsection.h
"
17
namespace
Threading
18
{
19
class
CriticalSection
:
public
Win32::Win32CriticalSection
20
{ };
21
}
22
#elif ( __OSX__ || __APPLE__ || __linux__ )
23
#include "
threading/posix/posixcriticalsection.h
"
24
namespace
Threading
25
{
26
class
CriticalSection
:
public
Posix::PosixCriticalSection
27
{ };
28
}
29
#else
30
#error "Threading::CriticalSection not implemented on this platform!"
31
#endif
32
33
namespace
Threading
34
{
35
struct
CriticalScope
36
{
37
CriticalScope
(Threading::CriticalSection*
section
)
38
:
section
(
section
)
39
{
40
this->section->Enter();
41
}
42
43
~CriticalScope
()
44
{
45
this->
section
->Leave();
46
this->
section
=
nullptr
;
47
}
48
49
Threading::CriticalSection*
section
;
50
};
51
52
}
53
54
//------------------------------------------------------------------------------
55
Posix::PosixCriticalSection
Posix-implementation of critical section.
Definition
posixcriticalsection.h:24
CriticalSection
Critical section objects are used to protect a portion of code from parallel execution.
Win32::Win32CriticalSection
Win32-implementation of critical section.
Definition
win32criticalsection.h:32
config.h
Nebula compiler specific defines and configuration.
Threading
The Jobs2 system provides a set of threads and a pool of jobs from which threads can pickup work.
Definition
jobs2.h:16
posixcriticalsection.h
Threading::CriticalScope::section
Threading::CriticalSection * section
Definition
criticalsection.h:49
Threading::CriticalScope::~CriticalScope
~CriticalScope()
Definition
criticalsection.h:43
Threading::CriticalScope::CriticalScope
CriticalScope(Threading::CriticalSection *section)
Definition
criticalsection.h:37
win32criticalsection.h
code
foundation
threading
criticalsection.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.