From c48a2c4aacb60e155e2b1035aeea6020e17cd53d Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Wed, 3 Apr 2013 20:55:41 +0200 Subject: [PATCH] Renaming peek() to peekNode and making it protected, then creating a new peek that returns T --- .../main/java/akka/dispatch/AbstractNodeQueue.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/akka-actor/src/main/java/akka/dispatch/AbstractNodeQueue.java b/akka-actor/src/main/java/akka/dispatch/AbstractNodeQueue.java index 14b543112c..e72a6b2e18 100644 --- a/akka-actor/src/main/java/akka/dispatch/AbstractNodeQueue.java +++ b/akka-actor/src/main/java/akka/dispatch/AbstractNodeQueue.java @@ -22,10 +22,15 @@ public abstract class AbstractNodeQueue extends AtomicReference peek() { + protected final Node peekNode() { return ((Node)Unsafe.instance.getObjectVolatile(this, tailOffset)).next(); } + public final T peek() { + final Node n = peekNode(); + return (n != null) ? n.value : null; + } + public final void add(final T value) { final Node n = new Node(value); getAndSet(n).setNext(n); @@ -37,14 +42,14 @@ public abstract class AbstractNodeQueue extends AtomicReference n = peek();n != null; n = n.next()) + for(Node n = peekNode();n != null; n = n.next()) ++count; return count; } @SuppressWarnings("unchecked") public final T poll() { - final Node next = peek(); + final Node next = peekNode(); if (next == null) return null; else { final T ret = next.value;