From 0fb6c523391fe87ddd3651e616358f6a335c32aa Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 25 Aug 2025 14:34:23 -0700 Subject: [PATCH] crimson/.../extent_placement_manager: convert BackgroundProcess::run() to coroutine Signed-off-by: Samuel Just --- .../os/seastore/extent_placement_manager.cc | 30 +++++++------------ 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index be53c9c292c..b454d03a877 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -741,26 +741,18 @@ seastar::future<> ExtentPlacementManager::BackgroundProcess::run() { assert(is_running()); - return seastar::repeat([this] { - if (!is_running()) { - log_state("run(exit)"); - return seastar::make_ready_future( - seastar::stop_iteration::yes); + while (is_running()) { + if (background_should_run()) { + log_state("run(background)"); + co_await do_background_cycle(); + } else { + log_state("run(block)"); + assert(!blocking_background); + blocking_background = seastar::promise<>(); + co_await blocking_background->get_future(); } - return seastar::futurize_invoke([this] { - if (background_should_run()) { - log_state("run(background)"); - return do_background_cycle(); - } else { - log_state("run(block)"); - ceph_assert(!blocking_background); - blocking_background = seastar::promise<>(); - return blocking_background->get_future(); - } - }).then([] { - return seastar::stop_iteration::no; - }); - }); + } + log_state("run(exit)"); } /** -- 2.39.5