acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
condition.h
1
#pragma once
2
3
4
#include "acme/_operating_system.h"
5
6
7
#include "condition_variable.h"
8
9
10
class
CLASS_DECL_ACME condition :
11
virtual
public
particle
12
{
13
public
:
14
15
#if defined(LINUX) || defined(__APPLE__) || defined(SOLARIS) || defined(__BSD__)
16
17
iptr m_hsync;
18
bool
m_bManualEvent;
19
bool
m_bSignaled;
// meaningful only when m_bManualEvent
20
::i32 m_iSignalId;
// meaningful only when m_bManualEvent
21
22
#elif defined(__ANDROID__)
23
24
bool
m_bSignaled;
25
::i32 m_iHold;
26
pthread_mutex_t m_mutex;
27
pthread_cond_t m_cond;
28
29
#else
30
31
CRITICAL_SECTION m_criticalsection;
32
condition_variable m_conditionvariable;
33
34
#endif
35
36
37
condition();
38
~condition()
override
;
39
40
41
//using synchronization::lock;
42
//virtual bool lock(const class time & timeWait);
43
44
using
particle::unlock;
45
virtual
void
unlock()
override
;
46
47
virtual
void
* get_os_data()
const
;
48
49
bool
pulse_happening();
50
bool
set_happening();
51
//bool set_happening() { return set_happening(); }
52
//bool pulse_happening();
53
bool
reset_happening();
54
55
59
61
::e_status
wait
()
override
;
62
66
::e_status
wait
(
const
class
time
& timeWait)
override
;
67
68
bool
is_signaled()
const
;
69
70
};
71
condition::wait
::e_status wait() override
Session independent waitables (windows version).
Definition
condition.cpp:169
e_status
Definition
e_status.h:30
time
Definition
aaa_time.h:13
parallelization
condition.h
Generated by
1.17.0