std :: promise是否在内部使用std :: condition_variable来通知关联的std :: future?

时间:2019-06-07 07:44:09

标签: c++ condition-variable std-future

我的问题是std::promise是否通过使用std::future通知关联的std::condition_variable

我搜索了std::promise的源代码,并找到了website。但是我没有看到std::promise的成员数据中有std::condition_variable

1 个答案:

答案 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