From fcf659fbe5c0cd6acf328281089c35c999f5514a Mon Sep 17 00:00:00 2001 From: Matthew Tran <0e4ef622@gmail.com> Date: Thu, 28 Aug 2025 10:35:27 -0500 Subject: embassy-sync: Don't drop wakers in Signal::reset --- embassy-sync/CHANGELOG.md | 1 + embassy-sync/src/signal.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'embassy-sync') diff --git a/embassy-sync/CHANGELOG.md b/embassy-sync/CHANGELOG.md index 593396586..a53d5f5b1 100644 --- a/embassy-sync/CHANGELOG.md +++ b/embassy-sync/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased - ReleaseDate +- Fix wakers getting dropped by `Signal::reset` ## 0.7.2 - 2025-08-26 diff --git a/embassy-sync/src/signal.rs b/embassy-sync/src/signal.rs index d96e36245..229b1fa99 100644 --- a/embassy-sync/src/signal.rs +++ b/embassy-sync/src/signal.rs @@ -83,7 +83,7 @@ where /// Remove the queued value in this `Signal`, if any. pub fn reset(&self) { - self.state.lock(|cell| cell.set(State::None)); + self.try_take(); } fn poll_wait(&self, cx: &mut Context<'_>) -> Poll { -- cgit