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