--- jsr166/src/jsr166y/LinkedTransferQueue.java 2009/01/05 03:53:26 1.11 +++ jsr166/src/jsr166y/LinkedTransferQueue.java 2009/01/12 17:16:18 1.12 @@ -298,14 +298,12 @@ public class LinkedTransferQueue exte else if (s.waiter == null) s.waiter = w; else if (mode != TIMEOUT) { - // LockSupport.park(this); - LockSupport.park(); // allows run on java5 + LockSupport.park(this); s.waiter = null; spins = -1; } else if (nanos > spinForTimeoutThreshold) { - // LockSupport.parkNanos(this, nanos); - LockSupport.parkNanos(nanos); + LockSupport.parkNanos(this, nanos); s.waiter = null; spins = -1; } @@ -730,6 +728,15 @@ public class LinkedTransferQueue exte // Support for resetting head/tail while deserializing + private void resetHeadAndTail() { + QNode dummy = new QNode(null, false); + _unsafe.putObjectVolatile(this, headOffset, + new PaddedAtomicReference(dummy)); + _unsafe.putObjectVolatile(this, tailOffset, + new PaddedAtomicReference(dummy)); + _unsafe.putObjectVolatile(this, cleanMeOffset, + new PaddedAtomicReference(null)); + } // Temporary Unsafe mechanics for preliminary release private static final Unsafe _unsafe; @@ -756,15 +763,4 @@ public class LinkedTransferQueue exte } } - private void resetHeadAndTail() { - QNode dummy = new QNode(null, false); - _unsafe.putObjectVolatile(this, headOffset, - new PaddedAtomicReference(dummy)); - _unsafe.putObjectVolatile(this, tailOffset, - new PaddedAtomicReference(dummy)); - _unsafe.putObjectVolatile(this, cleanMeOffset, - new PaddedAtomicReference(null)); - - } - }