Implemented Puller::pop_managed(), Puller::try_pop_managed(),
Puller::apop_managed() which return queue elements wrapped in the
MustHandle wrapper, which will automatically return elements to the queue
if unhandled when dropped.
Pusher objects can spawn downgraded to WeakPusher objects, that in turn
can be upgraded to Pusher objects (as long as all the strong Pusher
objects have not been dropped).
When taking nodes off the queue using Puller, return a Result which can
indicate an error if no nodes remain and there are no more Pushers
associated with the queue (implied: If no pushers remain, no new nodes will
be added, so the queue is effectively dead).
Dependencies updated:
indexmap updated to 2.0.0
Use Rust edition 2021.
Bump MSRV to 1.64 (based on MSRV in indexmap)
[0.11.0] - 2022-09-09
Added
Add a Default implementation for Queue.
Explicitly set MSRV is 1.36
Changed
Refactor some internals.
Update parking_lot to version 0.12.1.
Track individual PopFuture wakers and release them on Drop, to make sigq
more robust with regards to async cancellations.