From 672cdb5c0528ea03fde3a950607b4e3a23a034bb Mon Sep 17 00:00:00 2001 From: Dawid Medrek Date: Fri, 29 Sep 2023 16:52:39 +0200 Subject: [PATCH] db/hints: Coroutinize ensure_created_and_verified() --- db/hints/manager.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/db/hints/manager.cc b/db/hints/manager.cc index 6b76f0bc96..2272889df7 100644 --- a/db/hints/manager.cc +++ b/db/hints/manager.cc @@ -73,17 +73,18 @@ public: public: future<> ensure_created_and_verified() { if (_state != state::uninitialized) { - return make_ready_future<>(); + co_return; } - return with_semaphore(_lock, 1, [this] () { - utils::directories::set dir_set; - dir_set.add_sharded(_hints_directory); - return _dirs.create_and_verify(std::move(dir_set)).then([this] { - manager_logger.debug("Creating and validating hint directories: {}", _hints_directory); - _state = state::created_and_validated; - }); - }); + const auto units = co_await seastar::get_units(_lock, 1); + + utils::directories::set dir_set; + dir_set.add_sharded(_hints_directory); + + co_await _dirs.create_and_verify(std::move(dir_set)); + + manager_logger.debug("Creating and validating hint directories: {}", _hints_directory); + _state = state::created_and_validated; } future<> ensure_rebalanced() {