aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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();