disruptor
disruptor copied to clipboard
High Performance Inter-Thread Messaging Library
https://mail.openjdk.org/pipermail/jcstress-dev/2021-December/000965.html https://mvnrepository.com/artifact/org.openjdk.jcstress/jcstress-core
This should give us type-safe rewindable and non-rewindable `EventHandler` implementations. Non-rewindable implementations will not be able to throw `RewindableException` but will be able to implement `EventHandler::setSequenceCallback` and the opposite for...
**Describe the bug** The method `com.lmax.disruptor.util.Util.log2` gets stuck in an endless loop for negative values. The reason for this is that no argument validation is performed and the signed right...
Since #364 we have the concept of `EventHandler::onEvent` being able to throw a `RewindableException` which the `BatchEventProcessor` will handle and reset the sequence to the start of batch before trying...
Hello Team, I'm using Lmax Disruptor with 3 producers and 30 consumers with busy spin strategy. The ring buffer size is 65536. The producers are publishing events with a high...
I implemented my own version of Disruptor with some design improvements. 1. I separated the wait strategy from the blocking wait => SequenceBlocker. 2. Allow consumers to use different waiting...
**Describe the bug** Some low probability race condition causes lmax to loop indefinitely on Thread.yield **To Reproduce** This was found on a large production system with very low probability. Using...
https://security.snyk.io/vuln/SNYK-JAVA-JUNIT-1017047 Upgrading to Disruptor 4.0.X is difficult because it is not compatible with Log4j2 2.22.X https://github.com/apache/logging-log4j2/issues/1829 I think it would be good to have a 3.4.5 release that has this...
In version 4.x, is there a successor to Disruptor::handleEventsWithWorkerPool? Can multiple consumers cooperate to process a batch of messages? (one message will only be processed by one consumer)
ProcessingSequenceBarrier.java ```java public long waitFor(final long sequence) throws AlertException, InterruptedException, TimeoutException { checkAlert(); long availableSequence = waitStrategy.waitFor(sequence, cursorSequence, dependentSequence, this); if (availableSequence < sequence) { return availableSequence; } return sequencer.getHighestPublishedSequence(sequence,...