Main Page
Namespaces
Namespace List
Namespace Members
All
Enumerations
Enumerator
Classes
Class List
Class Members
All
Functions
Variables
Typedefs
Files
File List
File Members
All
Functions
Variables
Macros
include
ecl
threads
mutex_w32.hpp
Go to the documentation of this file.
1
10
/*****************************************************************************
11
** Ifdefs
12
*****************************************************************************/
13
14
#ifndef ECL_THREADS_MUTEX_W32_HPP_
15
#define ECL_THREADS_MUTEX_W32_HPP_
16
17
/*****************************************************************************
18
** Platform Check
19
*****************************************************************************/
20
21
#include <ecl/config/ecl.hpp>
22
#if defined(ECL_IS_WIN32)
23
24
/*****************************************************************************
25
** Includes
26
*****************************************************************************/
27
28
#include <windows.h>
29
#include <
ecl/time/duration.hpp
>
30
#include "macros.hpp"
31
32
33
/*****************************************************************************
34
** Namespaces
35
*****************************************************************************/
36
37
namespace
ecl
{
38
39
/*****************************************************************************
40
** Typedefs
41
*****************************************************************************/
42
43
typedef
CRITICAL_SECTION RawMutex;
45
/*****************************************************************************
46
** Class Mutex
47
*****************************************************************************/
58
class
ecl_threads_PUBLIC
Mutex {
59
public
:
67
Mutex(
const
bool
locked =
false
);
73
virtual
~Mutex();
74
80
void
unlock();
86
void
lock();
98
bool
trylock(
Duration
&duration);
107
bool
trylock();
117
unsigned
int
locks() {
return
number_locks; }
118
125
RawMutex& rawType() {
return
mutex
; }
126
127
private
:
128
RawMutex
mutex
;
129
unsigned
int
number_locks;
130
131
};
132
133
};
// namespace ecl
134
135
136
#endif
/* ECL_IS_WIN32 */
137
#endif
/* ECL_THREADS_MUTEX_W32_HPP_ */
mutex
ecl::Mutex mutex
Definition:
examples/mutex.cpp:25
Duration
TimeStamp Duration
ecl
Embedded control libraries.
duration.hpp
ecl_threads_PUBLIC
#define ecl_threads_PUBLIC
Definition:
macros.hpp:37
ecl_threads
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:16:43