From 33179c86471a10143530cc0554e1e54c2c64963b Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Thu, 19 May 2022 12:56:29 +0300 Subject: [PATCH] replica: distributed_loader: coroutinize process_sstable_dir Signed-off-by: Benny Halevy --- replica/distributed_loader.cc | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/replica/distributed_loader.cc b/replica/distributed_loader.cc index 3919587660..bac634b0ea 100644 --- a/replica/distributed_loader.cc +++ b/replica/distributed_loader.cc @@ -6,6 +6,7 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ +#include #include #include "distributed_loader.hh" #include "replica/database.hh" @@ -86,21 +87,19 @@ public: future<> distributed_loader::process_sstable_dir(sharded& dir, bool sort_sstables_according_to_owner) { - return dir.invoke_on(0, [] (const sstables::sstable_directory& d) { + co_await dir.invoke_on(0, [] (const sstables::sstable_directory& d) { return utils::directories::verify_owner_and_mode(d.sstable_dir()); - }).then([&dir, sort_sstables_according_to_owner] { - return dir.invoke_on_all([&dir, sort_sstables_according_to_owner] (sstables::sstable_directory& d) { + }); + + // FIXME: indentation + co_await dir.invoke_on_all([&dir, sort_sstables_according_to_owner] (sstables::sstable_directory& d) -> future<> { // Supposed to be called with the node either down or on behalf of maintenance tasks // like nodetool refresh - return d.process_sstable_dir(service::get_local_streaming_priority(), sort_sstables_according_to_owner).then([&dir, &d] { - return d.move_foreign_sstables(dir); - }); + co_await d.process_sstable_dir(service::get_local_streaming_priority(), sort_sstables_according_to_owner); + co_await d.move_foreign_sstables(dir); }); - }).then([&dir] { - return dir.invoke_on_all([&dir] (sstables::sstable_directory& d) { - return d.commit_directory_changes(); - }); - }); + + co_await dir.invoke_on_all(&sstables::sstable_directory::commit_directory_changes); } future<>