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