diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp index 1234cb85a..4e50e0d3d 100644 --- a/include/boost/thread/future.hpp +++ b/include/boost/thread/future.hpp @@ -4956,6 +4956,10 @@ namespace detail { return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_deferred_continuation_shared_state, future_type>( lock, boost::move(*this), boost::forward(func) ))); + } else if (underlying_cast(policy) & int(launch::sync)) { + return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_sync_continuation_shared_state, future_type>( + lock, boost::move(*this), boost::forward(func) + ))); #ifdef BOOST_THREAD_PROVIDES_EXECUTORS } else if (underlying_cast(policy) & int(launch::executor)) { assert(this->future_->get_executor()); @@ -4976,6 +4980,10 @@ namespace detail { return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_deferred_continuation_shared_state, future_type>( lock, boost::move(*this), boost::forward(func) ))); + } else if (underlying_cast(policy_) & int(launch::sync)) { + return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_sync_continuation_shared_state, future_type>( + lock, boost::move(*this), boost::forward(func) + ))); #ifdef BOOST_THREAD_PROVIDES_EXECUTORS } else if (underlying_cast(policy_) & int(launch::executor)) { assert(this->future_->get_executor());