diff --git a/src/main/java/org/jboss/netty/util/LinkedTransferQueue.java b/src/main/java/org/jboss/netty/util/LinkedTransferQueue.java
index 2ea7970501..ae410b9acb 100644
--- a/src/main/java/org/jboss/netty/util/LinkedTransferQueue.java
+++ b/src/main/java/org/jboss/netty/util/LinkedTransferQueue.java
@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import java.util.concurrent.locks.LockSupport;
/**
- * An unbounded {@linkplain BlockingQueue} based on linked nodes.
+ * An unbounded TransferQueue based on linked nodes.
* This queue orders elements FIFO (first-in-first-out) with respect
* to any given producer. The head of the queue is that
* element that has been on the queue the longest time for some
@@ -58,9 +58,10 @@ import java.util.concurrent.locks.LockSupport;
*
*
Memory consistency effects: As with other concurrent
* collections, actions in a thread prior to placing an object into a
- * {@code LinkedTransferQueue} happen-before actions subsequent
- * to the access or removal of that element from the
- * {@code LinkedTransferQueue} in another thread.
+ * {@code LinkedTransferQueue}
+ * happen-before
+ * actions subsequent to the access or removal of that element from
+ * the {@code LinkedTransferQueue} in another thread.
*
* @author Doug Lea
* @author The Netty Project (netty-dev@lists.jboss.org)
@@ -72,19 +73,19 @@ import java.util.concurrent.locks.LockSupport;
public class LinkedTransferQueue extends AbstractQueue implements BlockingQueue {
/*
- * This is still a work in progress...
- *
* This class extends the approach used in FIFO-mode
* SynchronousQueues. See the internal documentation, as well as
* the PPoPP 2006 paper "Scalable Synchronous Queues" by Scherer,
* Lea & Scott
* (http://www.cs.rice.edu/~wns1/papers/2006-PPoPP-SQ.pdf)
*
- * The main extension is to provide different Wait modes
- * for the main "xfer" method that puts or takes items.
- * These do not impact the basic dual-queue logic, but instead
- * control whether or how threads block upon insertion
- * of request or data nodes into the dual queue.
+ * The main extension is to provide different Wait modes for the
+ * main "xfer" method that puts or takes items. These don't
+ * impact the basic dual-queue logic, but instead control whether
+ * or how threads block upon insertion of request or data nodes
+ * into the dual queue. It also uses slightly different
+ * conventions for tracking whether nodes are off-list or
+ * cancelled.
*/
// Wait modes for xfer method
@@ -107,7 +108,7 @@ public class LinkedTransferQueue extends AbstractQueue implements Blocking
/**
* The number of times to spin before blocking in untimed waits.
* This is greater than timed value because untimed waits spin
- * faster since they do not need to check times on each spin.
+ * faster since they don't need to check times on each spin.
*/
private static final int maxUntimedSpins = maxTimedSpins * 16;
@@ -118,19 +119,18 @@ public class LinkedTransferQueue extends AbstractQueue implements Blocking
private static final long spinForTimeoutThreshold = 1000L;
/**
- * Node class for LinkedTransferQueue. Opportunistically subclasses from
- * AtomicReference to represent item. Uses Object, not E, to allow
- * setting item to "this" after use, to avoid garbage
- * retention. Similarly, setting the next field to this is used as
- * sentinel that node is off list.
+ * Node class for LinkedTransferQueue. Opportunistically
+ * subclasses from AtomicReference to represent item. Uses Object,
+ * not E, to allow setting item to "this" after use, to avoid
+ * garbage retention. Similarly, setting the next field to this is
+ * used as sentinel that node is off list.
*/
private static final class QNode extends AtomicReference