diff options
| author | Oliver Rockstedt <[email protected]> | 2024-10-06 17:39:47 +0200 |
|---|---|---|
| committer | Oliver Rockstedt <[email protected]> | 2024-10-06 17:39:47 +0200 |
| commit | f3ed0c60265c84ddcc11e4dea980bdc0b8343985 (patch) | |
| tree | 70b49883fdc2d1dfdd54024f3d1bcffdf3ec217b /embassy-sync | |
| parent | 383ad72b63b11ed1fc50ad5803534ac69996aff6 (diff) | |
embassy-sync: fix len calculation for zerocopy_channel
Diffstat (limited to 'embassy-sync')
| -rw-r--r-- | embassy-sync/src/zerocopy_channel.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/embassy-sync/src/zerocopy_channel.rs b/embassy-sync/src/zerocopy_channel.rs index a2c763294..a669cbd09 100644 --- a/embassy-sync/src/zerocopy_channel.rs +++ b/embassy-sync/src/zerocopy_channel.rs | |||
| @@ -290,7 +290,15 @@ impl State { | |||
| 290 | } | 290 | } |
| 291 | 291 | ||
| 292 | fn len(&self) -> usize { | 292 | fn len(&self) -> usize { |
| 293 | self.len | 293 | if !self.full { |
| 294 | if self.back >= self.front { | ||
| 295 | self.back - self.front | ||
| 296 | } else { | ||
| 297 | self.len + self.back - self.front | ||
| 298 | } | ||
| 299 | } else { | ||
| 300 | self.len | ||
| 301 | } | ||
| 294 | } | 302 | } |
| 295 | 303 | ||
| 296 | fn is_full(&self) -> bool { | 304 | fn is_full(&self) -> bool { |
