我的问题是std::promise
是否通过使用std::future
通知关联的std::condition_variable
?
我搜索了std::promise
的源代码,并找到了website。但是我没有看到std::promise
的成员数据中有std::condition_variable
。
答案 0 :(得分:3)
这是libc ++的答案。
在<future>
中搜索PATH
的结果恰好是一个结果:
condition_variable
此处介绍了// lines 531 -- 538
class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE __assoc_sub_state
: public __shared_count
{
protected:
exception_ptr __exception_;
mutable mutex __mut_;
mutable condition_variable __cv_;
unsigned __state_;
。它是__assoc_sub_state
的基类:
__assoc_state
最后,// lines 617 -- 619
template <class _Rp>
class _LIBCPP_AVAILABILITY_FUTURE __assoc_state
: public __assoc_sub_state
都是__assoc_state<_Rp>*
的成员:
future<_Rp>
和// lines 1082 -- 1085
template <class _Rp>
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE future
{
__assoc_state<_Rp>* __state_;
的成员:
promise<_Rp>
是的,libc ++ // lines 1360 -- 1363
template <class _Rp>
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE promise
{
__assoc_state<_Rp>* __state_;
在内部使用std::promise
来通知关联的std::condition_variable
。