Skip to content

Commit

Permalink
Added Martin Thompson's suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
Jamie Allen committed Sep 6, 2011
1 parent 66169a3 commit 83ba2ae
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 18 deletions.
53 changes: 49 additions & 4 deletions code/.scala_dependencies
Expand Up @@ -30,18 +30,15 @@
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/Consumer.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ConsumerBarrier.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AlertException.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/test/scala/com/jamieallen/sdisruptor/support/StubEntry.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/test/scala/com/jamieallen/sdisruptor/support/StubEntry.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/EntryFactory.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/test/scala/com/jamieallen/sdisruptor/support/StubEntry.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/test/scala/com/jamieallen/sdisruptor/support/StubEntry.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceBatch.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceBatch.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/EntryTranslator.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/EntryTranslator.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/EntryTranslator.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/FatalExceptionHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ExceptionHandler.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/FatalExceptionHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/FatalExceptionHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/FatalExceptionHandler.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackerCallback.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackerCallback.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/BatchHandler.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/NoOpConsumer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/NoOpConsumer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/RingBuffer.scala
Expand Down Expand Up @@ -69,3 +66,51 @@
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala
-------
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/RingBuffer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/RingBuffer$$anonfun$nextEntries$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/RingBuffer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/RingBuffer.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/RingBuffer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/RingBuffer$ConsumerTrackingConsumerBarrier.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/RingBuffer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/RingBuffer$$anonfun$fill$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ExceptionHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ExceptionHandler.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ConsumerBarrier.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ConsumerBarrier.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AlertException.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/AlertException$.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AlertException.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/AlertException.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/EntryFactory.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/EntryFactory.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/IgnoreExceptionHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/IgnoreExceptionHandler.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/Consumer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/Consumer.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/LifecycleAware.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/LifecycleAware.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ProducerBarrier.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ProducerBarrier.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$BlockingStrategy$$anonfun$waitFor$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$BusySpinStrategy$$anonfun$waitFor$2.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$BlockingStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$BusySpinStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$YieldingStrategy$$anonfun$waitFor$4.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$YieldingStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$BusySpinStrategy$$anonfun$waitFor$3.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/WaitStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/WaitStrategy$YieldingStrategy$$anonfun$waitFor$5.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceBatch.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/SequenceBatch.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/EntryTranslator.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/EntryTranslator.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/FatalExceptionHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/FatalExceptionHandler.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackingHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/SequenceTrackingHandler.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/NoOpConsumer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/NoOpConsumer.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/Util.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/Util$$anonfun$getMinimumSequence$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/Util.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/Util$.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/Util.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/Util.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/SequenceTrackerCallback.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/SequenceTrackerCallback.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/BatchConsumer.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/BatchConsumer.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/BatchHandler.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/BatchHandler.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ClaimStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ClaimStrategy$.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ClaimStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ClaimStrategy$MultiThreadedStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ClaimStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ClaimStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/ClaimStrategy.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/ClaimStrategy$SingleThreadedStrategy.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$getMean$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$count$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$addObservations$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$addObservations$2.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$validateBounds$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$getUpperBoundForFactor$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$clear$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/collections/Histogram.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/collections/Histogram$$anonfun$toString$1.class
/Users/jallen/sandbox/disruptor/sdisruptor/code/src/main/scala/com/jamieallen/sdisruptor/AbstractEntry.scala -> /Users/jallen/sandbox/disruptor/sdisruptor/code/bin/com/jamieallen/sdisruptor/AbstractEntry.class
Expand Up @@ -18,10 +18,10 @@ package com.jamieallen.sdisruptor
import java.util.concurrent.atomic.AtomicLong;

object ClaimStrategy {
val MultiThreaded = 'multiThreaded
val SingleThreaded = 'singleThreaded
val MultiThreaded = "multiThreaded"
val SingleThreaded = "singleThreaded"

def newInstance(option: Symbol): ClaimStrategy = {
def newInstance(option: String): ClaimStrategy = {
option match {
case SingleThreaded => new SingleThreadedStrategy
case MultiThreaded => new MultiThreadedStrategy
Expand Down
Expand Up @@ -27,8 +27,8 @@ import java.util.concurrent.TimeUnit;
*/
class RingBuffer[T <: AbstractEntry : ClassManifest](entryFactory: EntryFactory[T],
size: Int,
var claimStrategyOption: Symbol,
var waitStrategyOption: Symbol) extends ProducerBarrier[T] {
var claimStrategyOption: String,
var waitStrategyOption: String) extends ProducerBarrier[T] {
if (claimStrategyOption == null) claimStrategyOption = ClaimStrategy.MultiThreaded
if (waitStrategyOption == null) waitStrategyOption = WaitStrategy.Blocking

Expand Down
Expand Up @@ -23,11 +23,11 @@ import java.util.concurrent.locks.ReentrantLock;
import scala.util.control.Breaks._

object WaitStrategy {
val Blocking = 'blocking
val BusySpin = 'busySpin
val Yielding = 'yielding
val Blocking = "blocking"
val BusySpin = "busySpin"
val Yielding = "yielding"

def newInstance(option: Symbol): WaitStrategy = {
def newInstance(option: String): WaitStrategy = {
option match {
case Blocking => new BlockingStrategy
case BusySpin => new BusySpinStrategy
Expand Down
Expand Up @@ -63,7 +63,7 @@ public void shouldThrowExceptionOnSettingNullExceptionHandler()
@Test
public void shouldReturnUnderlyingBarrier()
{
assertEquals(consumerBarrier, batchConsumer.consumerBarrier());
assertEquals(consumerBarrier, batchConsumer.consumerBarrier);
}

@Test
Expand Down
2 changes: 1 addition & 1 deletion code/src/test/java/com/lmax/disruptor/RingBufferTest.java
Expand Up @@ -45,7 +45,7 @@
public class RingBufferTest
{
private final ExecutorService EXECUTOR = Executors.newSingleThreadExecutor(new DaemonThreadFactory());
private final RingBuffer<StubEntry> ringBuffer = new RingBuffer<StubEntry>(StubEntry.ENTRY_FACTORY, 20, null, null);
private final RingBuffer<StubEntry> ringBuffer = new RingBuffer<StubEntry>(StubEntry.ENTRY_FACTORY, 20, (String)null, (String)null);
private final ConsumerBarrier<StubEntry> consumerBarrier = ringBuffer.createConsumerBarrier(new Consumer[0]);
{
final NoOpConsumer<StubEntry> noOpConsumer = new NoOpConsumer<StubEntry>(ringBuffer);
Expand Down

0 comments on commit 83ba2ae

Please sign in to comment.