demikernel
demikernel copied to clipboard
Turning from Unbounded AsyncQueue to Bounded AsyncQueue
Context
Currently, AsyncQueue is unbounded, which can cause the queue to grow indefinitely.
Proposed Solution
One solution would be to use the ArrayDeque of crate::arraydeque and restrict the queue to a fixed value (e.g., 1024). This change maintains the insertion and removal operations that are already in the AsyncQueue, such as push_back, push_front, and pop_front, in addition to basic operations such as len, is_empty, iter, and iter_mut.
Another enhancement involves the use of the Saturating parameter. This feature ensures that when the queue reaches its maximum capacity, any new elements will be automatically discarded, preventing the queue from growing beyond its set limit.