- Revert the fix added in 0.3.1 as the code was actually correct and the fix was unnecessary (comments added).
- Add a FIFO queue variant in the
fifo
module with the same API, based on the Tokio queue.
- Make the queue capacity a run-time parameter,
- Move the LIFO queue to a
lifo
module. - Choose buffer indexing integer size based on
target_has_atomic
and remove thelong_counter
feature. - Bump the MSRV to 1.60 to enable the use of
target_has_atomic
.
- Fix bug that could result in an underflow when estimating the capacity of a stealer.
- Implement FusedIterator for the Drain iterator.
- Add a
Worker::spare_capacity
method. - BREAKING CHANGE: remove
Worker::len
as it was not very useful due to its weak guaranties. - BREAKING CHANGE: move the
drain
method to the worker rather than the stealer, as it is mostly useful to move items back into an injection queue on overflow.
- Add a drain iterator to efficiently steal batches of items into custom containers.
- Mitigate other potential ABA problems by using 32-bit positions throughout.
- Update documentation.
- Inline MIT license in
tokio_queue.rs
and explicitly state license exceptions for tests/benchmark in README. - Update copyright date in MIT license.
Initial release