std::condition_variable::wait() 是 POSIX 线程取消点吗?
Is std::condition_variable::wait() a POSIX thread cancellation point?
主题行说明了一切。我的环境是带有 C++11 编译器的 Linux 系统。
有人知道吗?
这当然是标准中没有定义的东西,因此无法以跨平台的方式回答。
但是,如果 std::condition_variable::native_handle
是 pthread_cond_t*
类型,那么您可以相对确定 std::condition_variable::wait
也将使用 pthread_cond_wait
。尽管如此,仍然没有保证,所以唯一安全的方法是检查您的实施。
此外,我会限制将标准工具与平台特定的东西混合使用,例如 POSIX。我要么选择完整的 POSIX 方式,要么使用标准替代方案,例如升压中断点。
主题行说明了一切。我的环境是带有 C++11 编译器的 Linux 系统。
有人知道吗?
这当然是标准中没有定义的东西,因此无法以跨平台的方式回答。
但是,如果 std::condition_variable::native_handle
是 pthread_cond_t*
类型,那么您可以相对确定 std::condition_variable::wait
也将使用 pthread_cond_wait
。尽管如此,仍然没有保证,所以唯一安全的方法是检查您的实施。
此外,我会限制将标准工具与平台特定的东西混合使用,例如 POSIX。我要么选择完整的 POSIX 方式,要么使用标准替代方案,例如升压中断点。