Due to an error in the release process of v4.0.2 the binaries were built with JDK11, losing backwards compatibility with JDK6. This is fixed in this new release.
Same code, new bundling post #370
This is a major release, following the removal of the QueueFactory
, AtomicQueueFactory
and org.jctools.queues.spec
package(deprecated since 3.0). These classes are still used for testing, but are not part of the release artifacts anymore.
New unpadded queue variants are also included in this release.
Further changes included:
And many improvements to testing and code generation.
This is a minor release with new features and several bug fixes.
Bug fixes:
fill
wakeup call can spin forever(or until a consumer is blocked again) on MpscBlockingConsumerArrayQueueNew features:
Thanks to all the contributors, bug reporters and reviewers!
This is a minor release with one new feature and several bug fixes.
Bug fixes:
NonBlockingHashMapLong
and NonBlockingIdentityHashMap
to provide getAndSet
like semantics for put and remove.NonBlockingIdentityHashMap
replace
bug. During this fix some further work was done to bring the code closer in line to the current state of NonBlockingHashMap
Enhancements:
New features:
PaddedAtomicLong
, thanks @pveentjerThanks to all the contributors, bug reporters and reviewers!
This is a minor release with one new feature and several bug fixes.
Bug fixes:
byte
fields for padding (avoid upcoming false sharing problem in JDK 15+ where field ordering has changed)size
for indexed queues and similar issue with isEmpty
: https://github.com/JCTools/JCTools/commit/5fd57720bf19fcd8d93a91c6281f8c41d5ee6b00#diff-f32b0a7583f04b29affe3c5f0486df4f (thanks @hl845740757 and @franz1981)peek
/relaxedPeek
race with poll
/offer
in MC queues (thanks @hl845740757 and @franz1981)size()
> capacity()
(thanks @hl845740757)MpscBlockingConsumerArrayQueue::poll(TimeUnit,timeout)
(thanks @philipa , @njhill and @franz1981)MpmcUnboundedXaddArrayQueue::peek/relaxedPeek
can load "future" elements (thanks @franz1981)New feature:
MpscBlockingConsumerArrayQueue::offerIfBelowThreshold
is added (thanks @philipa)Thanks to all the contributors, bug reporters and reviewers!
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:
MpscLinkedQueue7
and MpscLinkedQueue8
and consolidate into parent. This removes the need for the builder method on MpscLinkedQueue
.QueueFactory
and spec package classes. These are not used by any users AFAICT and are only used for testing internally.@InternalAPI
tagging annotation is also used more extensively to discourage dependency.We also have some great new queues for y'all to try:
Bug fixes:
fill/drain
methodsImprovements:
MpmcArrayQueue
(from @franz1981)MpscArrayQueue
and MpscUnboundedArrayQueue
(PR #229 from @srdo)*ArrayQueue
classesMany other improvements to testing, javadoc, formatting were made with some contributions from @Hearen @JanStureNielsen @nastra thanks!
PR #202 : Fix NBHM bug in remove/replace where ref equality was used to report val match instead of equals
(thanks @henri-tremblay)
PR #206 : Improved javadoc (thanks @franz1981)
Issue #205 : NBHM remove/put getAndSet semantics issue (thanks @fvlad for reporting and @cliffclick for review)
Issue #208 : no need for queues to be final
Further improvements to testing and code style.
Not included in the release, but very much appreciated, are contributions from @franz1981 and @qwwdfsad to the experimental part of JCTools, which may one day get merged into core, and @maseev contribution to integrate build with Coveralls.io.
PR #193 : Fix API break on release in MpscLinkedAtomicQueue Issue #194 : Fix MpscCompoundQueue::relaxedOffer bug Issue #196 : Fix MpscLinkedArray::fill bug Issue #197 : Fix MpscChunkedQueue:fill bug
Further improvements to testing. Thanks @Scottmitch and @mlex for reporting issues and helping resolve them!
Bug fixes:
Features:
Some further improvements to formatting, javadoc and testing and general tending to the garden by @nitsanw