JCTools v3.0.0 Release Notes
Release Date: 2020-01-03 // over 4 years ago-
This is a major version as there are some minor API breaking changes which may effect users. Please apply with care and provide feedback. The breaking changes:
- โ Removed
MpscLinkedQueue7
andMpscLinkedQueue8
and consolidate into parent. This removes the need for the builder method onMpscLinkedQueue
. - ๐ฆ Deprecated
QueueFactory
and spec package classes. These are not used by any users AFAICT and are only used for testing internally. - โ Removed some internal classes and reduced visibility of internal utilities where practical. The
@InternalAPI
tagging annotation is also used more extensively to discourage dependency.
We also have some great new queues for y'all to try:
- #226: XADD unbounded mpsc/mpmc queue: highly scalable linked array queues (from @franz1981)
- ๐ New blocking consumer MPSC (with contributions and bug fixes from @njhill)
๐ Bug fixes:
- #209: On Arm7, non-volatile long can have unaligned address leading to error
- #216: Size of SpscGrowableArrayQueue can exceeds max capacity (from @franz1981 PR #218)
- #241: Protect the producer index in case of OutOfMemoryError (from @franz1981)
- #244: Long NBHM AssertionError when replacing missing key (thanks @fvlad for reporting and @cliffclick for assistance and review)
- ๐ Fix argument checks on
fill/drain
methods - ๐ Fix LGTM warning, potential int overflow bug b467d29, 15d944c, 6367951
๐ Improvements:
- Don't mark generated linked atomic queues as final (from @kay 9db418c)
- #211: Implement batching methods on
MpmcArrayQueue
(from @franz1981) - #228: Iterator for
MpscArrayQueue
andMpscUnboundedArrayQueue
(PR #229 from @srdo) - ๐ Iterator support also available for the
*ArrayQueue
classes - #208: MpscLinkedAtomicQueue can be made not final
- ๐ป #237: Add scale to exception message to help debug netty/netty#8916 (from @johnou)
โ Many other improvements to testing, javadoc, formatting were made with some contributions from @Hearen @JanStureNielsen @nastra thanks!
- โ Removed