c++ - std::condition_variable::wait()是POSIX线程取消点吗?

标签 c++ posix

主题行说明了一切。我的环境是带有C++ 11编译器的Linux系统。

有人知道吗

最佳答案

当然,这是标准中未定义的内容,因此无法以跨平台的方式来回答。

但是,如果std::condition_variable::native_handle的类型为pthread_cond_t*,则可以相对确定std::condition_variable::wait也将使用pthread_cond_wait。尽管如此,仍然没有任何保证,所以唯一安全的方法是检查您的实现。

另外,我将避免将标准工具与平台特定的东西(例如POSIX)混合使用。我要么采用完整的POSIX方式,要么使用诸如加速中断点之类的标准替代方案。

关于c++ - std::condition_variable::wait()是POSIX线程取消点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29151102/

相关文章:

c - C 中的 fork() 和 POSIX 中共享内存的内存表示

c++ - 执行 sqlite3_stmt 时使用 DatabaseCallback

c++ - 尝试使用 lua 错误调用对象方法时 luabind 中止

c++ - typedef 中的 C/C++ 前向声明

c++ - 什么叫表达式 `T (&some(...)) [2]` where T=char

c++ - 将日期值分配给字符串(boost c++ 库,posix 时间)

C++ : Interix signals

c++ - 名称与类方法冲突

c - 开始 (^) 和结束 ($) anchor 不起作用

c++ - 取消引用共享指针并分配给它