diff --git a/wash/src/actor/ActorThread.java b/wash/src/actor/ActorThread.java index da1c8ce..bb231a2 100644 --- a/wash/src/actor/ActorThread.java +++ b/wash/src/actor/ActorThread.java @@ -2,7 +2,6 @@ package actor; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import java.util.Optional; public abstract class ActorThread extends Thread { @@ -10,42 +9,29 @@ public abstract class ActorThread extends Thread { /** Called by another thread, to send a message to this thread. */ public void send(M message) { - System.out.println(" # Sending message: " + message); + String handlerName = this.getClass().getSimpleName(); q.offer(message); - System.out.println(" % Queue State: " + q); + System.out.println(" # Message to " + handlerName + " : " + message); } - + /** Returns the first message in the queue, or blocks if none available. */ protected M receive() throws InterruptedException { - M mess = q.take(); - System.out.println(" - Message taken: " + mess); + M mess = q.take(); return mess; } - /** Returns the first message in the queue, or blocks up to 'timeout' - milliseconds if none available. Returns null if no message is obtained - within 'timeout' milliseconds. */ + /** + * Returns the first message in the queue, or blocks up to 'timeout' + * milliseconds if none available. Returns null if no message is obtained + * within 'timeout' milliseconds. + */ + @Deprecated protected M receiveWithTimeout(long timeout) throws InterruptedException { return q.poll(timeout, TimeUnit.MILLISECONDS); } - protected Optional poll(long timeOut) { - try { - Optional m = Optional.ofNullable(q.poll(timeOut, TimeUnit.MILLISECONDS)); - System.out.println("Stolen: " + m); - return m; - } catch (InterruptedException e) { - return Optional.empty(); - } catch (Exception e) { - return Optional.empty(); // Or exit the program - } - } - - protected void usleep(long time) { - try { - Thread.sleep(time); - } catch (InterruptedException e) { - e.printStackTrace(); - } + /** Wait for a message continuously */ + protected M take() throws InterruptedException { + return q.take(); } } \ No newline at end of file