From f694e657c7667d7782761f3454e9e0dd2f297931 Mon Sep 17 00:00:00 2001 From: James Hiew Date: Tue, 16 Aug 2022 14:25:29 +0100 Subject: [PATCH] Always use an aborter --- apps/src/lib/node/ledger/mod.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/src/lib/node/ledger/mod.rs b/apps/src/lib/node/ledger/mod.rs index 15030a97fb0..549b59cff90 100644 --- a/apps/src/lib/node/ledger/mod.rs +++ b/apps/src/lib/node/ledger/mod.rs @@ -315,6 +315,12 @@ async fn run_aux(config: config::Ledger, wasm_dir: PathBuf) { // we want any Ethereum endpoint set in the environment to override the // one set in the config let ethereum_url = std::env::var(ENV_VAR_ETHEREUM_URL).ok(); + // On panic or exit, the `Drop` of `AbortSender` will + // send abort message + let aborter_for_eth = Aborter { + sender: abort_send_for_eth, + who: "Ethereum", + }; let (ethereum_url, ethereum_node, abort_sender) = match ethereum_url { Some(ethereum_url) => { tracing::info!( @@ -334,6 +340,7 @@ async fn run_aux(config: config::Ledger, wasm_dir: PathBuf) { "Received abort signal that was intended for Ethereum \ node" ); + drop(aborter_for_eth); Ok(()) }); let (abort_sender, _) = tokio::sync::oneshot::channel(); @@ -353,19 +360,12 @@ async fn run_aux(config: config::Ledger, wasm_dir: PathBuf) { // run geth in the background let handle = tokio::spawn(async move { - // On panic or exit, the `Drop` of `AbortSender` will - // send abort message - let aborter = Aborter { - sender: abort_send_for_eth, - who: "Ethereum", - }; - let res = ethereum_node::run(ethereum_node, eth_abort_recv) .map_err(Error::Ethereum) .await; tracing::info!("Ethereum fullnode is no longer running."); - drop(aborter); + drop(aborter_for_eth); res }); (ethereum_url, handle, abort_sender)