aboutsummaryrefslogtreecommitdiff
path: root/rtic-sync
diff options
context:
space:
mode:
authordatdenkikniet <jcdra1@gmail.com>2025-03-13 22:48:53 +0100
committerEmil Fresk <emil.fresk@gmail.com>2025-03-16 11:19:22 +0000
commit36c574019f36074737637d9c0d8129d9f0e6dc59 (patch)
tree78626d0bd024f0d56dec6ac522ca86229252deea /rtic-sync
parent84c7ad186e11b26ed0db5ecc7014dd79d5840bf8 (diff)
rtic-sync: add explicit check for being closed
Diffstat (limited to 'rtic-sync')
-rw-r--r--rtic-sync/src/channel.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/rtic-sync/src/channel.rs b/rtic-sync/src/channel.rs
index e33725b..e4dc835 100644
--- a/rtic-sync/src/channel.rs
+++ b/rtic-sync/src/channel.rs
@@ -332,6 +332,10 @@ impl<T, const N: usize> Sender<'_, T, N> {
let idx = poll_fn(|cx| {
// Do all this in one critical section, else there can be race conditions
critical_section::with(|cs| {
+ if self.is_closed() {
+ return Poll::Ready(Err(()));
+ }
+
let wq_empty = self.0.wait_queue.is_empty();
let freeq_empty = self.0.access(cs).freeq.is_empty();