diff options
| author | datdenkikniet <jcdra1@gmail.com> | 2025-03-13 22:48:53 +0100 |
|---|---|---|
| committer | Emil Fresk <emil.fresk@gmail.com> | 2025-03-16 11:19:22 +0000 |
| commit | 36c574019f36074737637d9c0d8129d9f0e6dc59 (patch) | |
| tree | 78626d0bd024f0d56dec6ac522ca86229252deea /rtic-sync/src/channel.rs | |
| parent | 84c7ad186e11b26ed0db5ecc7014dd79d5840bf8 (diff) | |
rtic-sync: add explicit check for being closed
Diffstat (limited to 'rtic-sync/src/channel.rs')
| -rw-r--r-- | rtic-sync/src/channel.rs | 4 |
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(); |
