From c174149d384e0fdde3b36b9287eada400367af5f Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 14 Feb 2024 22:42:10 -0500 Subject: [PATCH] rgw/pubsub: Waiter uses async_initiate Signed-off-by: Casey Bodley (cherry picked from commit 3618271b30b6b48de98c37cdc51de9b7475ed8a0) --- src/rgw/driver/rados/rgw_pubsub_push.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rgw/driver/rados/rgw_pubsub_push.cc b/src/rgw/driver/rados/rgw_pubsub_push.cc index 1bf1a718efb..b73da6b42d4 100644 --- a/src/rgw/driver/rados/rgw_pubsub_push.cc +++ b/src/rgw/driver/rados/rgw_pubsub_push.cc @@ -136,7 +136,6 @@ namespace { class Waiter { using Signature = void(boost::system::error_code); using Completion = ceph::async::Completion; - using CompletionInit = boost::asio::async_completion; std::unique_ptr completion = nullptr; int ret; @@ -152,12 +151,13 @@ public: } if (y) { boost::system::error_code ec; - auto&& token = y.get_yield_context()[ec]; - CompletionInit init(token); - completion = Completion::create(y.get_io_context().get_executor(), - std::move(init.completion_handler)); + auto yield = y.get_yield_context(); + auto&& token = yield[ec]; + boost::asio::async_initiate( + [this] (auto handler, auto ex) { + completion = Completion::create(ex, std::move(handler)); + }, token, yield.get_executor()); l.unlock(); - init.result.get(); return -ec.value(); } cond.wait(l, [this]{return (done==true);}); -- 2.39.5