From 61796a5704703ba552df234ca61ba058a26a07a0 Mon Sep 17 00:00:00 2001 From: Christopher Kohlhoff Date: Wed, 7 Dec 2022 07:33:39 +1100 Subject: [PATCH] Dispatch cancellation handlers on the correct executor. When a completion handler for spawn() or co_spawn() uses a specified (i.e. non-default) associated executor, cancellation handlers need to be dispatched to the executor that was passed to spawn() or co_spawn(). --- include/boost/asio/impl/co_spawn.hpp | 6 +++--- include/boost/asio/impl/spawn.hpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/boost/asio/impl/co_spawn.hpp b/include/boost/asio/impl/co_spawn.hpp index 03f82ac0..5c33ef2f 100644 --- a/include/boost/asio/impl/co_spawn.hpp +++ b/include/boost/asio/impl/co_spawn.hpp @@ -204,8 +204,8 @@ template class co_spawn_cancellation_handler { public: - co_spawn_cancellation_handler(const Handler& handler, const Executor& ex) - : ex_(boost::asio::get_associated_executor(handler, ex)) + co_spawn_cancellation_handler(const Handler&, const Executor& ex) + : ex_(ex) { } @@ -222,7 +222,7 @@ public: private: cancellation_signal signal_; - typename associated_executor::type ex_; + Executor ex_; }; diff --git a/include/boost/asio/impl/spawn.hpp b/include/boost/asio/impl/spawn.hpp index 9fba4674..1dbb520d 100644 --- a/include/boost/asio/impl/spawn.hpp +++ b/include/boost/asio/impl/spawn.hpp @@ -1113,8 +1113,8 @@ template class spawn_cancellation_handler { public: - spawn_cancellation_handler(const Handler& handler, const Executor& ex) - : ex_(boost::asio::get_associated_executor(handler, ex)) + spawn_cancellation_handler(const Handler&, const Executor& ex) + : ex_(ex) { } @@ -1131,7 +1131,7 @@ public: private: cancellation_signal signal_; - typename associated_executor::type ex_; + Executor ex_; };