]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/main: do cleanup using defer()
authorKefu Chai <kchai@redhat.com>
Sat, 29 May 2021 07:03:01 +0000 (15:03 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 31 May 2021 12:06:22 +0000 (20:06 +0800)
since we do the startup in a seastar thread, we have the luxury of doing
cleanup using the RAII machinery.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/main.cc

index 0152e6ce6e58ba558519c8ab0b995f3ce98dfa5c..c8e0e5a6b5727af103b62a8eabb991b7ab7273e7 100644 (file)
@@ -214,12 +214,12 @@ int main(int argc, char* argv[])
             );
           }
           sharded_conf().start(init_params.name, cluster_name).get();
-          seastar::engine().at_exit([] {
-            return sharded_conf().stop();
+          auto stop_conf = seastar::defer([] {
+            sharded_conf().stop().get();
           });
           sharded_perf_coll().start().get();
-          seastar::engine().at_exit([] {
-            return sharded_perf_coll().stop();
+          auto stop_perf_coll = seastar::defer([] {
+            sharded_perf_coll().stop().get();
           });
           local_conf().parse_config_files(conf_file_list).get();
           local_conf().parse_argv(ceph_args).get();
@@ -263,8 +263,8 @@ int main(int argc, char* argv[])
               local_conf().get_val<uuid_d>("osd_uuid"),
               local_conf().get_val<uuid_d>("fsid")).get();
           }
-          seastar::engine().at_exit([&] {
-            return osd.stop();
+          auto stop_osd = seastar::defer([&] {
+            osd.stop().get();
           });
           if (config.count("mkkey") || config.count("mkfs")) {
             return EXIT_SUCCESS;