From: Samuel Just Date: Mon, 25 Aug 2025 21:34:23 +0000 (-0700) Subject: crimson/.../extent_placement_manager: convert BackgroundProcess::run() to coroutine X-Git-Tag: v21.0.0~157^2~172^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0fb6c523391fe87ddd3651e616358f6a335c32aa;p=ceph.git crimson/.../extent_placement_manager: convert BackgroundProcess::run() to coroutine Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index be53c9c292c1..b454d03a8771 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)"); } /**