diff --git a/libs/execution/include/hpx/execution/datapar/execution_policy.hpp b/libs/execution/include/hpx/execution/datapar/execution_policy.hpp index 1482fad0208..32cad487d2f 100644 --- a/libs/execution/include/hpx/execution/datapar/execution_policy.hpp +++ b/libs/execution/include/hpx/execution/datapar/execution_policy.hpp @@ -18,8 +18,8 @@ #include #include #include -#include #include +#include #include #include diff --git a/libs/execution/include/hpx/execution/detail/future_await_traits.hpp b/libs/execution/include/hpx/execution/detail/future_await_traits.hpp index 18718fb05bf..56305633e83 100644 --- a/libs/execution/include/hpx/execution/detail/future_await_traits.hpp +++ b/libs/execution/include/hpx/execution/detail/future_await_traits.hpp @@ -11,8 +11,8 @@ #include #include -#include #include +#include #if defined(HPX_HAVE_EMULATE_COROUTINE_SUPPORT_LIBRARY) #include @@ -25,17 +25,22 @@ #include /////////////////////////////////////////////////////////////////////////////// -namespace hpx { namespace lcos { namespace detail -{ +namespace hpx { namespace lcos { namespace detail { /////////////////////////////////////////////////////////////////////////// // this was removed from the TS, so we define our own struct suspend_if { bool is_ready_; - explicit suspend_if(bool cond) noexcept : is_ready_(!cond) {} + explicit suspend_if(bool cond) noexcept + : is_ready_(!cond) + { + } - bool await_ready() noexcept { return is_ready_; } + bool await_ready() noexcept + { + return is_ready_; + } void await_suspend(std::experimental::coroutine_handle<>) noexcept {} void await_resume() noexcept {} }; @@ -50,18 +55,16 @@ namespace hpx { namespace lcos { namespace detail } template - HPX_FORCEINLINE void await_suspend(future& f, - std::experimental::coroutine_handle rh) + HPX_FORCEINLINE void await_suspend( + future& f, std::experimental::coroutine_handle rh) { // f.then([=](future result) {}); auto st = traits::detail::get_shared_state(f); - st->set_on_completed( - [=]() mutable - { - if (st->has_exception()) - rh.promise().set_exception(st->get_exception_ptr()); - rh(); - }); + st->set_on_completed([=]() mutable { + if (st->has_exception()) + rh.promise().set_exception(st->get_exception_ptr()); + rh(); + }); } template @@ -72,13 +75,13 @@ namespace hpx { namespace lcos { namespace detail // Allow wrapped futures to be unwrapped, if possible. template - HPX_FORCEINLINE T await_resume(future >& f) + HPX_FORCEINLINE T await_resume(future>& f) { return f.get().get(); } template - HPX_FORCEINLINE T await_resume(future >& f) + HPX_FORCEINLINE T await_resume(future>& f) { return f.get().get(); } @@ -92,18 +95,16 @@ namespace hpx { namespace lcos { namespace detail } template - HPX_FORCEINLINE void await_suspend(shared_future& f, - std::experimental::coroutine_handle rh) + HPX_FORCEINLINE void await_suspend( + shared_future& f, std::experimental::coroutine_handle rh) { // f.then([=](shared_future result) {}) auto st = traits::detail::get_shared_state(f); - st->set_on_completed( - [=]() mutable - { - if (st->has_exception()) - rh.promise().set_exception(st->get_exception_ptr()); - rh(); - }); + st->set_on_completed([=]() mutable { + if (st->has_exception()) + rh.promise().set_exception(st->get_exception_ptr()); + rh(); + }); } template @@ -129,8 +130,8 @@ namespace hpx { namespace lcos { namespace detail hpx::lcos::future get_return_object() { hpx::intrusive_ptr shared_state(this); - return hpx::traits::future_access >:: - create(std::move(shared_state)); + return hpx::traits::future_access>::create( + std::move(shared_state)); } std::experimental::suspend_never initial_suspend() @@ -148,27 +149,29 @@ namespace hpx { namespace lcos { namespace detail void set_exception(std::exception_ptr e) { - try { + try + { std::rethrow_exception(std::move(e)); } - catch (...) { + catch (...) + { this->base_type::set_exception(std::current_exception()); } } void destroy() { - std::experimental::coroutine_handle:: - from_promise(*static_cast(this)).destroy(); + std::experimental::coroutine_handle::from_promise( + *static_cast(this)) + .destroy(); } }; -}}} +}}} // namespace hpx::lcos::detail /////////////////////////////////////////////////////////////////////////////// -namespace std { namespace experimental -{ +namespace std { namespace experimental { // Allow for functions which use co_await to return an hpx::future - template + template struct coroutine_traits, Ts...> { struct promise_type @@ -178,14 +181,14 @@ namespace std { namespace experimental hpx::lcos::detail::coroutine_promise_base; template - void return_value(U && value) + void return_value(U&& value) { this->base_type::set_value(std::forward(value)); } }; }; - template + template struct coroutine_traits, Ts...> { struct promise_type @@ -200,8 +203,7 @@ namespace std { namespace experimental } }; }; -}} - -#endif // HPX_HAVE_AWAIT -#endif // HPX_LCOS_ACBA3E3F_7B29_41D1_AE85_C73CB69D089C +}} // namespace std::experimental +#endif // HPX_HAVE_AWAIT +#endif // HPX_LCOS_ACBA3E3F_7B29_41D1_AE85_C73CB69D089C diff --git a/libs/execution/include/hpx/execution/detail/future_data.hpp b/libs/execution/include/hpx/execution/detail/future_data.hpp index f2a199cb88f..84fd84ba869 100644 --- a/libs/execution/include/hpx/execution/detail/future_data.hpp +++ b/libs/execution/include/hpx/execution/detail/future_data.hpp @@ -11,18 +11,18 @@ #include #include #include +#include +#include #include #include -#include -#include #include -#include #include #include +#include +#include #include #include #include -#include #include #include #include @@ -864,10 +864,8 @@ namespace hpx { namespace lcos { namespace detail { // run in a separate thread virtual threads::thread_id_type apply( - threads::thread_pool_base* /*pool*/, - const char* /*annotation*/, - launch /*policy*/, - threads::thread_priority /*priority*/, + threads::thread_pool_base* /*pool*/, const char* /*annotation*/, + launch /*policy*/, threads::thread_priority /*priority*/, threads::thread_stacksize /*stacksize*/, threads::thread_schedule_hint /*schedulehint*/, error_code& /*ec*/) { diff --git a/libs/execution/include/hpx/execution/detail/future_traits.hpp b/libs/execution/include/hpx/execution/detail/future_traits.hpp index 7d0552db743..499e76ff922 100644 --- a/libs/execution/include/hpx/execution/detail/future_traits.hpp +++ b/libs/execution/include/hpx/execution/detail/future_traits.hpp @@ -9,30 +9,27 @@ #define HPX_LCOS_DETAIL_FUTURE_TRAITS_DEC_05_2017_0214PM #include -#include #include +#include #include -namespace hpx { namespace lcos { namespace detail -{ +namespace hpx { namespace lcos { namespace detail { /////////////////////////////////////////////////////////////////////////// template struct future_iterator_traits - {}; + { + }; template struct future_iterator_traits::value_type - >::type> + typename std::iterator_traits::value_type>::type> { - typedef - typename std::iterator_traits::value_type - type; + typedef typename std::iterator_traits::value_type type; typedef hpx::traits::future_traits traits_type; }; -}}} +}}} // namespace hpx::lcos::detail #endif diff --git a/libs/execution/include/hpx/execution/exception_list.hpp b/libs/execution/include/hpx/execution/exception_list.hpp index e32536e0d90..5d795ff7dcf 100644 --- a/libs/execution/include/hpx/execution/exception_list.hpp +++ b/libs/execution/include/hpx/execution/exception_list.hpp @@ -11,8 +11,8 @@ #include #include #include -#include #include +#include #include #include diff --git a/libs/execution/include/hpx/execution/execution_policy.hpp b/libs/execution/include/hpx/execution/execution_policy.hpp index e7d68560254..091fa5ee938 100644 --- a/libs/execution/include/hpx/execution/execution_policy.hpp +++ b/libs/execution/include/hpx/execution/execution_policy.hpp @@ -22,8 +22,8 @@ #include #include #include -#include #include +#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/distribution_policy_executor.hpp b/libs/execution/include/hpx/execution/executors/distribution_policy_executor.hpp index d03ce470544..c9e463e5102 100644 --- a/libs/execution/include/hpx/execution/executors/distribution_policy_executor.hpp +++ b/libs/execution/include/hpx/execution/executors/distribution_policy_executor.hpp @@ -12,9 +12,9 @@ #include #include +#include #include #include -#include #include #include #include diff --git a/libs/execution/include/hpx/execution/executors/execution.hpp b/libs/execution/include/hpx/execution/executors/execution.hpp index 1d6b3f2c6c3..0342137d5f7 100644 --- a/libs/execution/include/hpx/execution/executors/execution.hpp +++ b/libs/execution/include/hpx/execution/executors/execution.hpp @@ -18,18 +18,18 @@ #include #include #include -#include -#include -#include #include -#include -#include -#include #include -#include +#include #include #include #include +#include +#include +#include +#include +#include +#include #include #include @@ -1142,7 +1142,8 @@ namespace hpx { namespace parallel { namespace execution { -> result_future_type { // use unwrap directly (instead of lazily) to avoid // having to pull in dataflow - return hpx::util::unwrap(func(std::move(predecessor))); + return hpx::util::unwrap( + func(std::move(predecessor))); }); return hpx::traits::future_access::create( diff --git a/libs/execution/include/hpx/execution/executors/execution_parameters.hpp b/libs/execution/include/hpx/execution/executors/execution_parameters.hpp index 0277c914589..c27c477844f 100644 --- a/libs/execution/include/hpx/execution/executors/execution_parameters.hpp +++ b/libs/execution/include/hpx/execution/executors/execution_parameters.hpp @@ -14,13 +14,13 @@ #include #include #include +#include #include #include -#include +#include #include #include #include -#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/parallel_executor.hpp b/libs/execution/include/hpx/execution/executors/parallel_executor.hpp index d4ab5ffb8a9..c6fff25014b 100644 --- a/libs/execution/include/hpx/execution/executors/parallel_executor.hpp +++ b/libs/execution/include/hpx/execution/executors/parallel_executor.hpp @@ -18,14 +18,15 @@ #include #include #include +#include +#include +#include #include #include #include #include #include #include -#include -#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/parallel_executor_aggregated.hpp b/libs/execution/include/hpx/execution/executors/parallel_executor_aggregated.hpp index 2934b7cac95..ccece382ae3 100644 --- a/libs/execution/include/hpx/execution/executors/parallel_executor_aggregated.hpp +++ b/libs/execution/include/hpx/execution/executors/parallel_executor_aggregated.hpp @@ -16,16 +16,16 @@ #include #include #include +#include +#include +#include #include #include #include -#include #include -#include #include #include #include -#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/post_policy_dispatch.hpp b/libs/execution/include/hpx/execution/executors/post_policy_dispatch.hpp index 561cb9c52e4..df2da8a932a 100644 --- a/libs/execution/include/hpx/execution/executors/post_policy_dispatch.hpp +++ b/libs/execution/include/hpx/execution/executors/post_policy_dispatch.hpp @@ -10,9 +10,9 @@ #include #include +#include #include #include -#include #include #include #include diff --git a/libs/execution/include/hpx/execution/executors/sequenced_executor.hpp b/libs/execution/include/hpx/execution/executors/sequenced_executor.hpp index 760af893327..75bbd6c142c 100644 --- a/libs/execution/include/hpx/execution/executors/sequenced_executor.hpp +++ b/libs/execution/include/hpx/execution/executors/sequenced_executor.hpp @@ -11,10 +11,10 @@ #include #include +#include #include #include #include -#include #include #include #include diff --git a/libs/execution/include/hpx/execution/executors/service_executors.hpp b/libs/execution/include/hpx/execution/executors/service_executors.hpp index 5d20d3d1c60..3bdfc827ce3 100644 --- a/libs/execution/include/hpx/execution/executors/service_executors.hpp +++ b/libs/execution/include/hpx/execution/executors/service_executors.hpp @@ -12,8 +12,8 @@ #include #include #include -#include #include +#include #include namespace hpx { namespace parallel { namespace execution { diff --git a/libs/execution/include/hpx/execution/executors/thread_execution.hpp b/libs/execution/include/hpx/execution/executors/thread_execution.hpp index f0daa55886f..001c60cf262 100644 --- a/libs/execution/include/hpx/execution/executors/thread_execution.hpp +++ b/libs/execution/include/hpx/execution/executors/thread_execution.hpp @@ -18,17 +18,17 @@ #include #include #include +#include +#include +#include +#include #include #include #include #include -#include -#include #include #include #include -#include -#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/thread_execution_information.hpp b/libs/execution/include/hpx/execution/executors/thread_execution_information.hpp index d3090f5f29a..8ba0a9c7e35 100644 --- a/libs/execution/include/hpx/execution/executors/thread_execution_information.hpp +++ b/libs/execution/include/hpx/execution/executors/thread_execution_information.hpp @@ -9,11 +9,11 @@ #define HPX_PARALLEL_EXECUTORS_THREAD_EXECUTION_INFORMATION_JAN_17_2017_0130PM #include +#include #include #include #include #include -#include #include diff --git a/libs/execution/include/hpx/execution/executors/thread_pool_executor.hpp b/libs/execution/include/hpx/execution/executors/thread_pool_executor.hpp index 5790b8a7a87..f586ab5b840 100644 --- a/libs/execution/include/hpx/execution/executors/thread_pool_executor.hpp +++ b/libs/execution/include/hpx/execution/executors/thread_pool_executor.hpp @@ -18,14 +18,15 @@ #include #include #include +#include +#include +#include #include #include #include #include #include #include -#include -#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/thread_timed_execution.hpp b/libs/execution/include/hpx/execution/executors/thread_timed_execution.hpp index 4af875d1365..f309431acd2 100644 --- a/libs/execution/include/hpx/execution/executors/thread_timed_execution.hpp +++ b/libs/execution/include/hpx/execution/executors/thread_timed_execution.hpp @@ -8,11 +8,11 @@ #define HPX_PARALLEL_EXECUTORS_THREAD_TIMED_EXECUTION_JAN_09_2017_1117AM #include -#include #include +#include +#include #include #include -#include #include diff --git a/libs/execution/include/hpx/execution/executors/timed_execution.hpp b/libs/execution/include/hpx/execution/executors/timed_execution.hpp index 8f63322e9d4..b4c71ebff37 100644 --- a/libs/execution/include/hpx/execution/executors/timed_execution.hpp +++ b/libs/execution/include/hpx/execution/executors/timed_execution.hpp @@ -11,9 +11,9 @@ #include #include +#include #include #include -#include #include #include diff --git a/libs/execution/include/hpx/execution/executors/timed_executors.hpp b/libs/execution/include/hpx/execution/executors/timed_executors.hpp index 0bec040b090..dc6cedff023 100644 --- a/libs/execution/include/hpx/execution/executors/timed_executors.hpp +++ b/libs/execution/include/hpx/execution/executors/timed_executors.hpp @@ -10,12 +10,12 @@ #define HPX_PARALLEL_TIMED_EXECUTORS_JAN_06_2017_0802AM #include +#include #include +#include #include -#include #include #include -#include #include #include diff --git a/libs/execution/include/hpx/execution/future.hpp b/libs/execution/include/hpx/execution/future.hpp index facad85c5c9..9d4d2652305 100644 --- a/libs/execution/include/hpx/execution/future.hpp +++ b/libs/execution/include/hpx/execution/future.hpp @@ -14,17 +14,9 @@ #include #include #include -#include -#include -#include -#include -#include #include #include -#include #include -#include -#include #include #include #include @@ -32,6 +24,14 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -39,9 +39,11 @@ #include #include +// clang-format off #if defined(HPX_HAVE_AWAIT) - #include + #include #endif +// clang-format on #include #include @@ -49,15 +51,13 @@ #include #include - namespace hpx { // Due to the removal of the lcos_fwd include using lcos::future; using lcos::shared_future; -} +} // namespace hpx -namespace hpx { namespace lcos { namespace detail -{ +namespace hpx { namespace lcos { namespace detail { /////////////////////////////////////////////////////////////////////////// enum future_state { @@ -91,7 +91,8 @@ namespace hpx { namespace lcos { namespace detail typedef typename shared_state::init_no_addref init_no_addref; std::unique_ptr value( - serialization::detail::constructor_selector::create(ar)); + serialization::detail::constructor_selector::create( + ar)); hpx::intrusive_ptr p( new shared_state(init_no_addref{}, in_place{}, std::move(*value)), @@ -101,9 +102,9 @@ namespace hpx { namespace lcos { namespace detail } template - typename std::enable_if< - !std::is_void::type>::value - >::type serialize_future_load(Archive& ar, Future& f) + typename std::enable_if::type>::value>::type + serialize_future_load(Archive& ar, Future& f) { typedef typename hpx::traits::future_traits::type value_type; typedef lcos::detail::future_data shared_state; @@ -115,8 +116,9 @@ namespace hpx { namespace lcos { namespace detail { serialize_future_load( ar, f, std::is_default_constructible()); - - } else if (state == future_state::has_exception) { + } + else if (state == future_state::has_exception) + { std::exception_ptr exception; ar >> exception; @@ -125,19 +127,22 @@ namespace hpx { namespace lcos { namespace detail false); f = hpx::traits::future_access::create(std::move(p)); - } else if (state == future_state::invalid) { + } + else if (state == future_state::invalid) + { f = Future(); - } else { - HPX_THROW_EXCEPTION(invalid_status, - "serialize_future_load", + } + else + { + HPX_THROW_EXCEPTION(invalid_status, "serialize_future_load", "attempting to deserialize a future with an unknown state"); } } template - typename std::enable_if< - std::is_void::type>::value - >::type serialize_future_load(Archive& ar, Future& f) //-V659 + typename std::enable_if::type>::value>::type + serialize_future_load(Archive& ar, Future& f) //-V659 { typedef lcos::detail::future_data shared_state; typedef typename shared_state::init_no_addref init_no_addref; @@ -147,11 +152,14 @@ namespace hpx { namespace lcos { namespace detail if (state == future_state::has_value) { hpx::intrusive_ptr p( - new shared_state(init_no_addref{}, in_place{}, hpx::util::unused), + new shared_state( + init_no_addref{}, in_place{}, hpx::util::unused), false); f = hpx::traits::future_access::create(std::move(p)); - } else if (state == future_state::has_exception) { + } + else if (state == future_state::has_exception) + { std::exception_ptr exception; ar >> exception; @@ -160,11 +168,14 @@ namespace hpx { namespace lcos { namespace detail false); f = hpx::traits::future_access::create(std::move(p)); - } else if (state == future_state::invalid) { + } + else if (state == future_state::invalid) + { f = Future(); - } else { - HPX_THROW_EXCEPTION(invalid_status, - "serialize_future_load", + } + else + { + HPX_THROW_EXCEPTION(invalid_status, "serialize_future_load", "attempting to deserialize a future with an unknown state"); } } @@ -188,11 +199,12 @@ namespace hpx { namespace lcos { namespace detail } template - typename std::enable_if< - !std::is_void::type>::value - >::type serialize_future_save(Archive& ar, Future const& f) + typename std::enable_if::type>::value>::type + serialize_future_save(Archive& ar, Future const& f) { - typedef typename hpx::traits::future_traits::result_type value_type; + typedef + typename hpx::traits::future_traits::result_type value_type; int state = future_state::invalid; if (f.valid() && !f.is_ready()) @@ -209,8 +221,7 @@ namespace hpx { namespace lcos { namespace detail } else { - HPX_THROW_EXCEPTION(invalid_status, - "serialize_future_save", + HPX_THROW_EXCEPTION(invalid_status, "serialize_future_save", "future must be ready in order for it to be serialized"); } return; @@ -219,28 +230,31 @@ namespace hpx { namespace lcos { namespace detail if (f.has_value()) { state = future_state::has_value; - value_type const & value = - *hpx::traits::future_access:: - get_shared_state(f)->get_result(); + value_type const& value = + *hpx::traits::future_access::get_shared_state(f) + ->get_result(); ar << state; serialize_future_save( ar, value, std::is_default_constructible()); - - } else if (f.has_exception()) { + } + else if (f.has_exception()) + { state = future_state::has_exception; std::exception_ptr exception = f.get_exception_ptr(); ar << state << exception; - } else { + } + else + { state = future_state::invalid; ar << state; } } template - typename std::enable_if< - std::is_void::type>::value - >::type serialize_future_save(Archive& ar, Future const& f) //-V659 + typename std::enable_if::type>::value>::type + serialize_future_save(Archive& ar, Future const& f) //-V659 { int state = future_state::invalid; if (f.valid() && !f.is_ready()) @@ -257,8 +271,7 @@ namespace hpx { namespace lcos { namespace detail } else { - HPX_THROW_EXCEPTION(invalid_status, - "serialize_future_save", + HPX_THROW_EXCEPTION(invalid_status, "serialize_future_save", "future must be ready in order for it to be serialized"); } return; @@ -289,7 +302,8 @@ namespace hpx { namespace lcos { namespace detail } template - void serialize_future(serialization::output_archive& ar, Future& f, unsigned) + void serialize_future( + serialization::output_archive& ar, Future& f, unsigned) { serialize_future_save(ar, f); } @@ -297,10 +311,11 @@ namespace hpx { namespace lcos { namespace detail /////////////////////////////////////////////////////////////////////////// template struct future_unwrap_result - {}; + { + }; template