@@ -13,7 +13,7 @@ use clap::Parser;
13
13
use config:: { builder:: DefaultState , ConfigBuilder , Map , Source , Value } ;
14
14
15
15
use slog:: { crit, debug, info, warn, Logger } ;
16
- use tokio:: { sync :: oneshot , task:: JoinSet } ;
16
+ use tokio:: task:: JoinSet ;
17
17
18
18
use mithril_cli_helper:: {
19
19
register_config_value, register_config_value_bool, register_config_value_option,
@@ -255,7 +255,7 @@ impl ServeCommand {
255
255
. get_metrics_service ( )
256
256
. await
257
257
. with_context ( || "Metrics service initialization error" ) ?;
258
- let ( metrics_server_shutdown_tx , metrics_server_shutdown_rx ) = oneshot :: channel ( ) ;
258
+ let stop_rx_clone = stop_rx . clone ( ) ;
259
259
if config. enable_metrics_server {
260
260
let metrics_logger = root_logger. clone ( ) ;
261
261
join_set. spawn ( async move {
@@ -265,7 +265,7 @@ impl ServeCommand {
265
265
metrics_service,
266
266
metrics_logger. clone ( ) ,
267
267
)
268
- . start ( metrics_server_shutdown_rx )
268
+ . start ( stop_rx_clone )
269
269
. await
270
270
. map_err ( |e| anyhow ! ( e) ) ;
271
271
@@ -280,15 +280,13 @@ impl ServeCommand {
280
280
crit ! ( root_logger, "A critical error occurred" ; "error" => e) ;
281
281
}
282
282
283
- metrics_server_shutdown_tx
284
- . send ( ( ) )
285
- . map_err ( |e| anyhow ! ( "Metrics server shutdown signal could not be sent: {e:?}" ) ) ?;
286
-
287
283
// Stop servers
288
284
join_set. shutdown ( ) . await ;
289
285
290
286
// Send the stop signal
291
- let _ = stop_tx. send ( ( ) ) ;
287
+ stop_tx
288
+ . send ( ( ) )
289
+ . map_err ( |e| anyhow ! ( "Stop signal could not be sent: {e:?}" ) ) ?;
292
290
293
291
if !preload_task. is_finished ( ) {
294
292
preload_task. abort ( ) ;
0 commit comments