From 2c8808a15056927a01fa28cade4e7be49cd00459 Mon Sep 17 00:00:00 2001 From: Ivan Ukhov Date: Sat, 28 Dec 2024 11:27:41 +0100 Subject: [PATCH] Fix the lock release in asynchronous --- Cargo.toml | 2 +- src/asynchronous.rs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8c762be..df12db0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "loop" -version = "0.5.1" +version = "0.5.2" edition = "2021" license = "Apache-2.0/MIT" authors = ["Ivan Ukhov "] diff --git a/src/asynchronous.rs b/src/asynchronous.rs index d14e2b4..8aac7e4 100644 --- a/src/asynchronous.rs +++ b/src/asynchronous.rs @@ -27,7 +27,10 @@ where let item_receiver = item_receiver.clone(); let output_sender = output_sender.clone(); std::mem::drop(tokio::task::spawn(async move { - while let Some(item) = item_receiver.lock().await.recv().await { + while let Some(item) = { + let mut receiver = item_receiver.lock().await; + receiver.recv().await + } { if output_sender.send(map(item).await).await.is_err() { break; }