From 61cb8fd9d1f00e30bb7107edad83578a98584a99 Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Fri, 19 Dec 2014 06:46:19 +0100 Subject: [PATCH] added FIXMEs --- .../teetime/framework/AbstractInterThreadPipe.java | 8 +++++--- src/main/java/teetime/framework/pipe/SpScPipe.java | 3 +-- .../teetime/framework/RunnableConsumerStageTest.java | 11 +++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/teetime/framework/AbstractInterThreadPipe.java b/src/main/java/teetime/framework/AbstractInterThreadPipe.java index e2c7d349..5471576b 100644 --- a/src/main/java/teetime/framework/AbstractInterThreadPipe.java +++ b/src/main/java/teetime/framework/AbstractInterThreadPipe.java @@ -21,15 +21,17 @@ public abstract class AbstractInterThreadPipe extends AbstractPipe { @Override public void sendSignal(final ISignal signal) { this.signalQueue.offer(signal); - System.out.println("send signal: " + signal + " to " + cachedTargetStage); Thread owningThread = cachedTargetStage.getOwningThread(); - if (null != owningThread && (owningThread.getState() == State.WAITING || owningThread.getState() == State.TIMED_WAITING)) { + if (null != owningThread && isThreadWaiting(owningThread)) { // FIXME remove the null check for performance owningThread.interrupt(); - System.out.println("interrupted " + owningThread); } } + protected boolean isThreadWaiting(final Thread thread) { + return thread.getState() == State.WAITING || thread.getState() == State.TIMED_WAITING; + } + /** * Retrieves and removes the head of the signal queue * diff --git a/src/main/java/teetime/framework/pipe/SpScPipe.java b/src/main/java/teetime/framework/pipe/SpScPipe.java index 7564e870..c4b47464 100644 --- a/src/main/java/teetime/framework/pipe/SpScPipe.java +++ b/src/main/java/teetime/framework/pipe/SpScPipe.java @@ -1,6 +1,5 @@ package teetime.framework.pipe; -import java.lang.Thread.State; import java.util.Queue; import org.jctools.queues.QueueFactory; @@ -41,7 +40,7 @@ public final class SpScPipe extends AbstractInterThreadPipe { } Thread owningThread = cachedTargetStage.getOwningThread(); - if (null != owningThread && (owningThread.getState() == State.WAITING || owningThread.getState() == State.TIMED_WAITING)) { + if (null != owningThread && isThreadWaiting(owningThread)) { // FIXME remove the null check for performance synchronized (cachedTargetStage) { cachedTargetStage.notify(); // LOGGER.trace("Notified: " + cachedTargetStage); diff --git a/src/test/java/teetime/framework/RunnableConsumerStageTest.java b/src/test/java/teetime/framework/RunnableConsumerStageTest.java index 4399cd68..ab2f75b0 100644 --- a/src/test/java/teetime/framework/RunnableConsumerStageTest.java +++ b/src/test/java/teetime/framework/RunnableConsumerStageTest.java @@ -9,8 +9,6 @@ import org.junit.Test; import teetime.util.Pair; -import com.google.common.base.Joiner; - public class RunnableConsumerStageTest { @Test @@ -22,7 +20,7 @@ public class RunnableConsumerStageTest { Thread thread = new Thread(new Runnable() { @Override public void run() { - start(analysis); + start(analysis); // FIXME react on exceptions } }); thread.start(); @@ -42,7 +40,7 @@ public class RunnableConsumerStageTest { Thread thread = new Thread(new Runnable() { @Override public void run() { - start(analysis); + start(analysis); // FIXME react on exceptions } }); thread.start(); @@ -70,8 +68,9 @@ public class RunnableConsumerStageTest { private void start(final Analysis analysis) { Collection<Pair<Thread, Throwable>> exceptions = analysis.start(); for (Pair<Thread, Throwable> pair : exceptions) { - System.out.println(pair.getSecond()); - System.out.println(Joiner.on("\n").join(pair.getSecond().getStackTrace())); + // System.out.println(pair.getSecond()); + // System.out.println(Joiner.on("\n").join(pair.getSecond().getStackTrace())); + throw new RuntimeException(pair.getSecond()); } assertEquals(0, exceptions.size()); } -- GitLab