You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm using heapless-0.8.0 with the feature mpmc_large. Instances of MpMcQueue with N >= 256 can be constructed and appear to work correctly, but I think I found an edge case:
If the queue is already full and another enqueue is attempted, the function blocks in an inner busy loop. I suspect it has to do with the i8 it uses internally but replacing it with isize did not appear to fix this.
The issue can be reproduced by this test program:
#[test]fnenqueue_full_256(){constCAPACITY:usize = 256;let q:MpMcQueue<u8,CAPACITY> = MpMcQueue::new();for n in0..CAPACITY{// First CAPACITY enqueues are succesfull
q.enqueue(0xAA).unwrap();}// Queue is full. This should fail, but instead triggers a busy loop for CAPACITY > 128
q.enqueue(0x55).unwrap_err();}
The text was updated successfully, but these errors were encountered:
I'm using heapless-0.8.0 with the feature
mpmc_large
. Instances of MpMcQueue with N >= 256 can be constructed and appear to work correctly, but I think I found an edge case:If the queue is already full and another enqueue is attempted, the function blocks in an inner busy loop. I suspect it has to do with the
i8
it uses internally but replacing it withisize
did not appear to fix this.The issue can be reproduced by this test program:
The text was updated successfully, but these errors were encountered: