YSTest: ystdex::single_thread 命名空间参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 命名空间列表
- 命名空间成员

类 | 函数
ystdex::single_thread 命名空间参考

单线程操作：保证单线程环境下接口及符合对应的 std 命名空间下的接口。 更多...

## 类

struct | adopt_lock_t
struct | defer_lock_t
class | lock_guard
class | mutex
struct | once_flag
class | recursive_mutex
class | recursive_timed_mutex
class | timed_mutex
struct | try_to_lock_t
class | unique_lock

## 函数

template<class _tLock1 , class _tLock2 , class... _tLocks>
void | lock (_tLock1 &&, _tLock2 &&, _tLocks &&...)
template<class _tLock1 , class _tLock2 , class... _tLocks>
int | try_lock (_tLock1 &&, _tLock2 &&, _tLocks &&...)
template<typename _fCallable , typename... _tParams>
void | call_once (once_flag &flag, _fCallable &&f, _tParams &&...args)
| 按标识调用函数，保证调用一次。 更多...

## 变量

const struct ystdex::single_thread::defer_lock_t | defer_lock
const struct ystdex::single_thread::try_to_lock_t | try_to_lock
const struct ystdex::single_thread::adopt_lock_t | adopt_lock

## 详细描述

单线程操作：保证单线程环境下接口及符合对应的 std 命名空间下的接口。

注解
  不包含本机类型相关的接口。

自从
  build 550

待办事项:
  添加 ISO C++ 14 共享锁。

## 函数说明

template<typename _fCallable , typename... _tParams>

void ystdex::single_thread::call_once | ( | once_flag & | flag,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

按标识调用函数，保证调用一次。

注解
  类似 std::call_once ，但不保证线程安全性。
  ISO C++11（至 N3691 ） 30.4 synopsis 处的声明存在错误。

Bug:
  未实现支持成员指针。
  参见
    https://github.com/cplusplus/draft/issues/151 。
    http://wg21.cmeerw.net/cwg/issue1591 。
    http://wg21.cmeerw.net/cwg/issue2442 。
  自从
    build 692

当标识为非初值时候无作用，否则调用函数。

在文件 pseudo_mutex.h 第 537 行定义.

参考 YSLib::IO::f , 以及 yforward.

参考自 ystdex::call_once_init< YSLib::GUIApplication::InitBlock, once_flag >::call_once_init() , 以及 ystdex::call_once_init< YSLib::GUIApplication::InitBlock, once_flag >::~call_once_init().

这是这个函数的调用关系图:
template<class _tLock1 , class _tLock2 , class... _tLocks>

void ystdex::single_thread::lock | ( | _tLock1 && | ,
|  | _tLock2 && | ,
|  | _tLocks && | ...
| ) |  |

在文件 pseudo_mutex.h 第 558 行定义.

template<class _tLock1 , class _tLock2 , class... _tLocks>

int ystdex::single_thread::try_lock | ( | _tLock1 && | ,
|  | _tLock2 && | ,
|  | _tLocks && | ...
| ) |  |

inline

在文件 pseudo_mutex.h 第 563 行定义.

## 变量说明

const struct ystdex::single_thread::adopt_lock_t ystdex::single_thread::adopt_lock

const struct ystdex::single_thread::defer_lock_t ystdex::single_thread::defer_lock

const struct ystdex::single_thread::try_to_lock_t ystdex::single_thread::try_to_lock