MSTL
1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
futex.hpp
浏览该文件的文档.
1
#ifndef MSTL_CORE_ASYNC_FUTEX_HPP__
2
#define MSTL_CORE_ASYNC_FUTEX_HPP__
3
11
12
#include "
MSTL/core/typeinfo/type_traits.hpp
"
13
MSTL_BEGIN_NAMESPACE__
14
20
26
using
platform_wait_t
=
27
#ifdef MSTL_PLATFORM_WINDOWS__
28
long;
29
#else
30
int;
31
#endif
32
42
template
<
typename
T>
43
MSTL_INLINE17
constexpr
bool
platform_wait_valid_v
= is_scalar_v<T>
44
&&
sizeof
(T) ==
sizeof
(
platform_wait_t
)
45
&&
alignof
(T*) >=
alignof
(
platform_wait_t
);
46
53
enum class
futex_wait_flags
:
platform_wait_t
{
54
private_flag
= 0,
55
wait
= 0,
56
wake
= 1,
57
wait_bitset
= 9,
58
wake_bitset
= 10,
59
wait_private
=
wait
|
private_flag
,
60
wake_private
=
wake
|
private_flag
,
61
wait_bitset_private
=
wait_bitset
|
private_flag
,
62
wake_bitset_private
=
wake_bitset
|
private_flag
,
63
bitset_match_any
= -1
64
};
65
66
77
void
MSTL_API
futex_wait
(
void
* addr,
platform_wait_t
value)
noexcept
;
78
101
bool
MSTL_API
102
futex_wait_until
(
void
* addr,
platform_wait_t
value,
103
bool
has_timeout,
int64_t
sec,
int64_t
ns,
104
bool
is_monotonic =
false
);
105
116
void
MSTL_API
futex_notify
(
void
* addr,
bool
all)
noexcept
;
117
// Futex
119
120
MSTL_END_NAMESPACE__
121
#endif
// MSTL_CORE_ASYNC_FUTEX_HPP__
int64_t
long long int64_t
64位有符号整数类型
定义
types.hpp:68
futex_notify
void MSTL_API futex_notify(void *addr, bool all) noexcept
通知等待的线程
platform_wait_t
int platform_wait_t
平台等待类型别名
定义
futex.hpp:26
futex_wait_until
bool MSTL_API futex_wait_until(void *addr, platform_wait_t value, bool has_timeout, int64_t sec, int64_t ns, bool is_monotonic=false)
等待FUTEX直到指定时间点或条件满足
futex_wait_flags
futex_wait_flags
FUTEX操作标志枚举
定义
futex.hpp:53
platform_wait_valid_v
MSTL_INLINE17 constexpr bool platform_wait_valid_v
检查类型是否适用于平台等待操作
定义
futex.hpp:43
futex_wait
void MSTL_API futex_wait(void *addr, platform_wait_t value) noexcept
无限期等待FUTEX
futex_wait_flags::private_flag
@ private_flag
私有标志位
定义
futex.hpp:54
futex_wait_flags::bitset_match_any
@ bitset_match_any
匹配任何等待集合的位掩码
定义
futex.hpp:63
futex_wait_flags::wake
@ wake
唤醒操作
定义
futex.hpp:56
futex_wait_flags::wake_bitset_private
@ wake_bitset_private
私有位集唤醒操作
定义
futex.hpp:62
futex_wait_flags::wait
@ wait
等待操作
定义
futex.hpp:55
futex_wait_flags::wait_bitset_private
@ wait_bitset_private
私有位集等待操作
定义
futex.hpp:61
futex_wait_flags::wake_private
@ wake_private
私有唤醒操作
定义
futex.hpp:60
futex_wait_flags::wake_bitset
@ wake_bitset
位集唤醒操作
定义
futex.hpp:58
futex_wait_flags::wait_bitset
@ wait_bitset
位集等待操作
定义
futex.hpp:57
futex_wait_flags::wait_private
@ wait_private
私有等待操作
定义
futex.hpp:59
MSTL_END_NAMESPACE__
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
定义
c++config.hpp:268
MSTL_BEGIN_NAMESPACE__
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL
定义
c++config.hpp:262
type_traits.hpp
MSTL类型萃取
include
MSTL
core
async
futex.hpp
制作者
1.16.0