MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
condition_variable类 参考

条件变量类 更多...

#include <condition_variable.hpp>

Public 类型

using base_type = _INNER condition_variable_base
 基类类型
using native_handle_type = base_type::native_handle_type
 原生句柄类型
using clock_type = _MSTL steady_clock
 默认时钟类型

Public 成员函数

 condition_variable ()=default
 构造函数
 ~condition_variable ()=default
 析构函数
native_handle_typenative_handle () noexcept
 获取原生句柄
void notify_one () noexcept
 通知一个等待线程
void notify_all () noexcept
 通知所有等待线程
void wait (smart_lock< mutex > &lock)
 无限期等待
template<typename Pred>
void wait (smart_lock< mutex > &lock, Pred pred)
 带谓词的无限期等待
template<typename Dur>
cv_status wait_until (smart_lock< mutex > &lock, const time_point< steady_clock, Dur > &util)
 等待直到稳定时钟时间点
template<typename Dur>
cv_status wait_until (smart_lock< mutex > &lock, const time_point< system_clock, Dur > &util)
 等待直到系统时钟时间点
template<typename Clock, typename Dur>
cv_status wait_until (smart_lock< mutex > &lock, const time_point< Clock, Dur > &util)
 等待直到任意时钟时间点
template<typename Clock, typename Dur, typename Pred>
bool wait_until (smart_lock< mutex > &lock, const time_point< Clock, Dur > &util, Pred pred)
 带谓词的等待直到时间点
template<typename Rep, typename Period>
cv_status wait_for (smart_lock< mutex > &lock, const duration< Rep, Period > &rest)
 等待指定的持续时间
template<typename Rep, typename Period, typename Pred>
bool wait_for (smart_lock< mutex > &lock, const duration< Rep, Period > &rest, Pred pred)
 带谓词的等待指定持续时间

详细描述

条件变量类

条件变量允许线程等待某个条件成立,或通知其他线程条件已满足。

在文件 condition_variable.hpp119 行定义.

成员函数说明

◆ native_handle()

native_handle_type * condition_variable::native_handle ( )
inlinenoexcept

获取原生句柄

返回
指向条件变量原生句柄的指针

在文件 condition_variable.hpp182 行定义.

◆ wait() [1/2]

void condition_variable::wait ( smart_lock< mutex > & lock)
inline

无限期等待

参数
lock已锁定的互斥锁

原子地解锁互斥锁并等待条件变量,被唤醒后重新锁定互斥锁。

在文件 condition_variable.hpp206 行定义.

◆ wait() [2/2]

template<typename Pred>
void condition_variable::wait ( smart_lock< mutex > & lock,
Pred pred )
inline

带谓词的无限期等待

模板参数
Pred谓词类型
参数
lock已锁定的互斥锁
pred等待条件谓词,当返回true时停止等待

等待直到谓词返回true。防止虚假唤醒。

在文件 condition_variable.hpp219 行定义.

引用了 wait.

◆ wait_for() [1/2]

template<typename Rep, typename Period>
cv_status condition_variable::wait_for ( smart_lock< mutex > & lock,
const duration< Rep, Period > & rest )
inline

等待指定的持续时间

模板参数
Rep时间表示类型
Period时间单位比例
参数
lock已锁定的智能锁
rest要等待的持续时间
返回
等待结果状态

在文件 condition_variable.hpp302 行定义.

引用了 ceil(), steady_clock::now() , 以及 wait_until().

◆ wait_for() [2/2]

template<typename Rep, typename Period, typename Pred>
bool condition_variable::wait_for ( smart_lock< mutex > & lock,
const duration< Rep, Period > & rest,
Pred pred )
inline

带谓词的等待指定持续时间

模板参数
Rep时间表示类型
Period时间单位比例
Pred谓词类型
参数
lock已锁定的智能锁
rest要等待的持续时间
pred等待条件谓词
返回
谓词是否成立

在文件 condition_variable.hpp318 行定义.

引用了 _MSTL, ceil(), move(), steady_clock::now() , 以及 wait_until().

◆ wait_until() [1/4]

template<typename Clock, typename Dur>
cv_status condition_variable::wait_until ( smart_lock< mutex > & lock,
const time_point< Clock, Dur > & util )
inline

等待直到任意时钟时间点

模板参数
Clock时钟类型
Dur持续时间类型
参数
lock已锁定的智能锁
util目标时间点
返回
等待结果状态

支持任意时钟类型的等待,通过转换到稳定时钟实现。

在文件 condition_variable.hpp258 行定义.

引用了 ceil(), success , 以及 timeout.

◆ wait_until() [2/4]

template<typename Clock, typename Dur, typename Pred>
bool condition_variable::wait_until ( smart_lock< mutex > & lock,
const time_point< Clock, Dur > & util,
Pred pred )
inline

带谓词的等待直到时间点

模板参数
Clock时钟类型
Dur持续时间类型
Pred谓词类型
参数
lock已锁定的智能锁
util目标时间点
pred等待条件谓词
返回
谓词是否成立

等待直到谓词成立或超时,防止虚假唤醒。

在文件 condition_variable.hpp284 行定义.

引用了 timeout , 以及 wait_until().

◆ wait_until() [3/4]

template<typename Dur>
cv_status condition_variable::wait_until ( smart_lock< mutex > & lock,
const time_point< steady_clock, Dur > & util )
inline

等待直到稳定时钟时间点

模板参数
Dur持续时间类型
参数
lock已锁定的智能锁
util目标时间点
返回
等待结果状态

在文件 condition_variable.hpp231 行定义.

被这些函数引用 wait_for(), wait_for() , 以及 wait_until().

◆ wait_until() [4/4]

template<typename Dur>
cv_status condition_variable::wait_until ( smart_lock< mutex > & lock,
const time_point< system_clock, Dur > & util )
inline

等待直到系统时钟时间点

模板参数
Dur持续时间类型
参数
lock已锁定的智能锁
util目标时间点
返回
等待结果状态

在文件 condition_variable.hpp243 行定义.


该类的文档由以下文件生成: