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 @@
</attributes>
</classpathentry>
<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>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</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>
<attribute name="maven.pomderived" value="true"/>
</attributes>
......
#FindBugs User Preferences
#Tue Apr 14 12:04:32 CEST 2015
#Thu Apr 16 10:55:19 CEST 2015
detector_threshold=3
effort=max
excludefilter0=.fbExcludeFilterFile|true
......
......@@ -73,6 +73,13 @@
<url>https://build.se.informatik.uni-kiel.de/jenkins/view/TeeTime/</url>
</ciManagement>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
......@@ -108,11 +115,16 @@
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.jctools</groupId> -->
<!-- <artifactId>jctools-core</artifactId> -->
<!-- <version>1.0</version> -->
<!-- <version>1.1-SNAPSHOT</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.jctools</groupId>
<artifactId>jctools-core</artifactId>
<version>1.0</version>
<!-- <version>1.1-SNAPSHOT</version> -->
<groupId>com.github.JCTools</groupId>
<artifactId>JCTools</artifactId>
<version>3e1afaa505</version> <!-- SNAPSHOT master version -->
</dependency>
<dependency>
......
......@@ -15,148 +15,34 @@
*/
package org.jctools.queues;
import java.util.Collection;
import java.util.Iterator;
import java.util.Queue;
public final class ObservableSpScArrayQueue<E> implements Queue<E> {
private final SpscArrayQueue<E> queue;
public final class ObservableSpScArrayQueue<E> extends SpscArrayQueue<E> {
private transient long lastProducerIndex, lastConsumerIndex;
public ObservableSpScArrayQueue(final int requestedCapacity) {
this.queue = new SpscArrayQueue<E>(requestedCapacity);
public ObservableSpScArrayQueue(final int capacity) {
super(capacity);
}
public long getNumPushes() {
return queue.lvProducerIndex();
return currentProducerIndex();
}
public long getNumPulls() {
return queue.lvConsumerIndex();
return currentConsumerIndex();
}
public long getProducerFrequency() {
final long currentProducerIndex = queue.lvProducerIndex();
final long currentProducerIndex = getNumPushes();
long diff = currentProducerIndex - lastProducerIndex;
lastProducerIndex = currentProducerIndex;
return diff;
}
public long getConsumerFrequency() {
final long currentConsumerIndex = queue.lvConsumerIndex();
final long currentConsumerIndex = getNumPulls();
long diff = currentConsumerIndex - lastConsumerIndex;
lastConsumerIndex = currentConsumerIndex;
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;
public class AnalysisTest {
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;
......
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