diff --git a/main.cc b/main.cc index 0837da0c2a..80ad7e9cf3 100644 --- a/main.cc +++ b/main.cc @@ -1893,6 +1893,11 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl sl_controller.invoke_on_all([&lifecycle_notifier] (qos::service_level_controller& controller) { lifecycle_notifier.local().register_subscriber(&controller); }).get(); + auto unsubscribe_sl_controller = defer_verbose_shutdown("service level controller subscription", [&lifecycle_notifier] { + sl_controller.invoke_on_all([&lifecycle_notifier] (qos::service_level_controller& controller) { + return lifecycle_notifier.local().unregister_subscriber(&controller); + }).get(); + }); supervisor::notify("starting batchlog manager"); db::batchlog_manager_config bm_cfg; @@ -2034,10 +2039,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl supervisor::notify("serving"); // Register at_exit last, so that storage_service::drain_on_shutdown will be called first - auto drain_sl_controller = defer_verbose_shutdown("service level controller update loop", [&lifecycle_notifier] { - sl_controller.invoke_on_all([&lifecycle_notifier] (qos::service_level_controller& controller) { - return lifecycle_notifier.local().unregister_subscriber(&controller); - }).get(); + auto drain_sl_controller = defer_verbose_shutdown("service level controller update loop", [] { sl_controller.invoke_on_all(&qos::service_level_controller::drain).get(); });