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

updated JCTools

parent e1b8147b
Branches
Tags
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> <!-- <dependency> -->
<groupId>org.jctools</groupId> <!-- <groupId>org.jctools</groupId> -->
<artifactId>jctools-core</artifactId> <!-- <artifactId>jctools-core</artifactId> -->
<version>1.0</version> <!-- <version>1.0</version> -->
<!-- <version>1.1-SNAPSHOT</version> --> <!-- <version>1.1-SNAPSHOT</version> -->
<!-- </dependency> -->
<dependency>
<groupId>com.github.JCTools</groupId>
<artifactId>JCTools</artifactId>
<version>3e1afaa505</version> <!-- SNAPSHOT master 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.
Please to comment