Skip to content
Snippets Groups Projects
Commit 5802fd1f authored by Christian Wulf's avatar Christian Wulf
Browse files

updated JCTools

parent e1b8147b
No related branches found
No related tags found
No related merge requests found
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="src/performancetest/java"/> <classpathentry kind="src" path="src/performancetest/java"/>
<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
......
#FindBugs User Preferences #FindBugs User Preferences
#Tue Apr 14 12:04:32 CEST 2015 #Thu Apr 16 10:55:19 CEST 2015
detector_threshold=3 detector_threshold=3
effort=max effort=max
excludefilter0=.fbExcludeFilterFile|true excludefilter0=.fbExcludeFilterFile|true
......
...@@ -73,6 +73,13 @@ ...@@ -73,6 +73,13 @@
<url>https://build.se.informatik.uni-kiel.de/jenkins/view/TeeTime/</url> <url>https://build.se.informatik.uni-kiel.de/jenkins/view/TeeTime/</url>
</ciManagement> </ciManagement>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
...@@ -108,11 +115,16 @@ ...@@ -108,11 +115,16 @@
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
<version>18.0</version> <version>18.0</version>
</dependency> </dependency>
<!-- <dependency> -->
<!-- <groupId>org.jctools</groupId> -->
<!-- <artifactId>jctools-core</artifactId> -->
<!-- <version>1.0</version> -->
<!-- <version>1.1-SNAPSHOT</version> -->
<!-- </dependency> -->
<dependency> <dependency>
<groupId>org.jctools</groupId> <groupId>com.github.JCTools</groupId>
<artifactId>jctools-core</artifactId> <artifactId>JCTools</artifactId>
<version>1.0</version> <version>3e1afaa505</version> <!-- SNAPSHOT master version -->
<!-- <version>1.1-SNAPSHOT</version> -->
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -15,148 +15,34 @@ ...@@ -15,148 +15,34 @@
*/ */
package org.jctools.queues; package org.jctools.queues;
import java.util.Collection; public final class ObservableSpScArrayQueue<E> extends SpscArrayQueue<E> {
import java.util.Iterator;
import java.util.Queue;
public final class ObservableSpScArrayQueue<E> implements Queue<E> {
private final SpscArrayQueue<E> queue;
private transient long lastProducerIndex, lastConsumerIndex; private transient long lastProducerIndex, lastConsumerIndex;
public ObservableSpScArrayQueue(final int requestedCapacity) { public ObservableSpScArrayQueue(final int capacity) {
this.queue = new SpscArrayQueue<E>(requestedCapacity); super(capacity);
} }
public long getNumPushes() { public long getNumPushes() {
return queue.lvProducerIndex(); return currentProducerIndex();
} }
public long getNumPulls() { public long getNumPulls() {
return queue.lvConsumerIndex(); return currentConsumerIndex();
} }
public long getProducerFrequency() { public long getProducerFrequency() {
final long currentProducerIndex = queue.lvProducerIndex(); final long currentProducerIndex = getNumPushes();
long diff = currentProducerIndex - lastProducerIndex; long diff = currentProducerIndex - lastProducerIndex;
lastProducerIndex = currentProducerIndex; lastProducerIndex = currentProducerIndex;
return diff; return diff;
} }
public long getConsumerFrequency() { public long getConsumerFrequency() {
final long currentConsumerIndex = queue.lvConsumerIndex(); final long currentConsumerIndex = getNumPulls();
long diff = currentConsumerIndex - lastConsumerIndex; long diff = currentConsumerIndex - lastConsumerIndex;
lastConsumerIndex = currentConsumerIndex; lastConsumerIndex = currentConsumerIndex;
return diff; return diff;
} }
@Override
public int hashCode() {
return queue.hashCode();
}
@Override
public boolean add(final E e) {
return queue.add(e);
}
@Override
public boolean isEmpty() {
return queue.isEmpty();
}
@Override
public boolean contains(final Object o) {
return queue.contains(o);
}
@Override
public E remove() {
return queue.remove();
}
@Override
public Object[] toArray() {
return queue.toArray();
}
@Override
public boolean equals(final Object obj) {
if (obj instanceof ObservableSpScArrayQueue) {
return queue.equals(((ObservableSpScArrayQueue<?>) obj).queue);
}
return false;
}
@Override
public E element() {
return queue.element();
}
@Override
public boolean offer(final E e) {
return queue.offer(e);
}
@Override
public <T> T[] toArray(final T[] a) {
return queue.toArray(a);
}
@Override
public boolean addAll(final Collection<? extends E> c) {
return queue.addAll(c);
}
@Override
public E poll() {
return queue.poll();
}
@Override
public E peek() {
return queue.peek();
}
@Override
public int size() {
return queue.size();
}
@Override
public Iterator<E> iterator() {
return queue.iterator();
}
@Override
public void clear() {
queue.clear();
}
@Override
public boolean remove(final Object o) {
return queue.remove(o);
}
@Override
public boolean containsAll(final Collection<?> c) {
return queue.containsAll(c);
}
@Override
public boolean removeAll(final Collection<?> c) {
return queue.removeAll(c);
}
@Override
public boolean retainAll(final Collection<?> c) {
return queue.retainAll(c);
}
@Override
public String toString() {
return queue.toString();
}
} }
...@@ -19,7 +19,7 @@ import teetime.util.StopWatch; ...@@ -19,7 +19,7 @@ import teetime.util.StopWatch;
public class AnalysisTest { public class AnalysisTest {
private static final long DELAY_IN_MS = 500; private static final long DELAY_IN_MS = 500;
private static final long ABSOLUTE_MAX_ERROR_IN_MS = 1; private static final long ABSOLUTE_MAX_ERROR_IN_MS = 2;
private Analysis<TestConfig> analysis; private Analysis<TestConfig> analysis;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment