blob: 56ac99f19d5b2d535fceb1917e31e7f77b8e1a32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
/*****************************************************************
|
| Neptune - Threads :: Null Implementation
|
| (c) 2001-2002 Gilles Boccon-Gibod
| Author: Gilles Boccon-Gibod (bok@bok.net)
|
****************************************************************/
/*----------------------------------------------------------------------
| includes
+---------------------------------------------------------------------*/
#include "NptConfig.h"
#include "NptTypes.h"
#include "NptThreads.h"
/*----------------------------------------------------------------------
| NPT_NullAtomicVariable
+---------------------------------------------------------------------*/
class NPT_NullAtomicVariable : public NPT_AtomicVariableInterface
{
public:
// methods
NPT_NullAtomicVariable(int value) : m_Value(value) {}
~NPT_NullAtomicVariable() {}
int Increment() { return ++m_Value; }
int Decrement() { return --m_Value; }
int GetValue() { return m_Value; }
void SetValue(int value) { m_Value = value; }
private:
// members
volatile int m_Value;
};
/*----------------------------------------------------------------------
| NPT_AtomicVariable::NPT_AtomicVariable
+---------------------------------------------------------------------*/
NPT_AtomicVariable::NPT_AtomicVariable(int value)
{
m_Delegate = new NPT_NullAtomicVariable(value);
}
|