From 54bc91581f4c26b1e8f836f3d66bca74c9f14569 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Wed, 3 Mar 2021 13:36:37 +1100 Subject: [PATCH] Don't unnecessarily create async blocks If our expression directly evaluates to a future, we don't need to create an async block. This requires us to have `EventLoopRun::run` consume the instance instead of just taking a mutable reference (otherwise we run into lifetime issues). However, that is better anyway because `run` is an endless loop so you never get to use the handle afterwards anyway. --- swap/src/bin/asb.rs | 2 +- swap/src/bin/swap_cli.rs | 4 ++-- swap/src/protocol/alice/event_loop.rs | 2 +- swap/tests/testutils/mod.rs | 10 ++++------ 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/swap/src/bin/asb.rs b/swap/src/bin/asb.rs index 41b6b234..488aade3 100644 --- a/swap/src/bin/asb.rs +++ b/swap/src/bin/asb.rs @@ -100,7 +100,7 @@ async fn main() -> Result<()> { let rate_service = kraken::RateService::new().await?; - let (mut event_loop, _) = EventLoop::new( + let (event_loop, _) = EventLoop::new( config.network.listen, seed, execution_params, diff --git a/swap/src/bin/swap_cli.rs b/swap/src/bin/swap_cli.rs index 9fded67e..0e75c214 100644 --- a/swap/src/bin/swap_cli.rs +++ b/swap/src/bin/swap_cli.rs @@ -149,7 +149,7 @@ async fn main() -> Result<()> { ); let (swap, event_loop) = bob_factory.with_init_params(send_bitcoin).build().await?; - let handle = tokio::spawn(async move { event_loop.run().await }); + let handle = tokio::spawn(event_loop.run()); let swap = bob::run(swap); tokio::select! { event_loop_result = handle => { @@ -193,7 +193,7 @@ async fn main() -> Result<()> { execution_params, ); let (swap, event_loop) = bob_factory.build().await?; - let handle = tokio::spawn(async move { event_loop.run().await }); + let handle = tokio::spawn(event_loop.run()); let swap = bob::run(swap); tokio::select! { event_loop_result = handle => { diff --git a/swap/src/protocol/alice/event_loop.rs b/swap/src/protocol/alice/event_loop.rs index 3716d2cf..a188930f 100644 --- a/swap/src/protocol/alice/event_loop.rs +++ b/swap/src/protocol/alice/event_loop.rs @@ -158,7 +158,7 @@ where self.peer_id } - pub async fn run(&mut self) { + pub async fn run(mut self) { loop { tokio::select! { swarm_event = self.swarm.next().fuse() => { diff --git a/swap/tests/testutils/mod.rs b/swap/tests/testutils/mod.rs index b6494605..844c127e 100644 --- a/swap/tests/testutils/mod.rs +++ b/swap/tests/testutils/mod.rs @@ -103,7 +103,7 @@ impl TestContext { .await .unwrap(); - let join_handle = tokio::spawn(async move { event_loop.run().await }); + let join_handle = tokio::spawn(event_loop.run()); (swap, BobEventLoopJoinHandle(join_handle)) } @@ -116,7 +116,7 @@ impl TestContext { let (swap, event_loop) = self.bob_params.builder().build().await.unwrap(); - let join_handle = tokio::spawn(async move { event_loop.run().await }); + let join_handle = tokio::spawn(event_loop.run()); (swap, BobEventLoopJoinHandle(join_handle)) } @@ -376,7 +376,7 @@ where ) .await; - let (mut alice_event_loop, alice_swap_handle) = alice::EventLoop::new( + let (alice_event_loop, alice_swap_handle) = alice::EventLoop::new( alice_listen_address.clone(), alice_seed, execution_params, @@ -390,9 +390,7 @@ where let alice_peer_id = alice_event_loop.peer_id(); - tokio::spawn(async move { - alice_event_loop.run().await; - }); + tokio::spawn(alice_event_loop.run()); let bob_params = BobParams { seed: Seed::random().unwrap(),