From b7c377e9b6ee1c84cf5f62083e68e387f06bf219 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 f5a3eb7f227..9da5b3977ea 100644 --- a/apps/src/lib/node/ledger/mod.rs +++ b/apps/src/lib/node/ledger/mod.rs @@ -320,6 +320,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!( @@ -339,6 +345,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(); @@ -358,19 +365,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)