BUG-650: use weakCompareAndSwap() 69/11069/1
authorRobert Varga <rovarga@cisco.com>
Thu, 11 Sep 2014 20:55:39 +0000 (22:55 +0200)
committerRobert Varga <rovarga@cisco.com>
Thu, 11 Sep 2014 20:55:39 +0000 (22:55 +0200)
The weak version is documented to be sufficient for statistics and does
not have happens-before effects.

Change-Id: Ic71ff280e8fe166ff4d9def7800be1ad8d1318cd
Signed-off-by: Robert Varga <rovarga@cisco.com>
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/TrackingLinkedBlockingQueue.java

index 853a0aae0ebeb1d08f7145af5b30a55fac2b2328..b83a0953f1bc83449804f4fc2a98815e35967b8d 100644 (file)
@@ -112,6 +112,6 @@ public class TrackingLinkedBlockingQueue<E> extends LinkedBlockingQueue<E> {
         int largest;
         do {
             largest = largestQueueSize;
-        } while (size > largest && !LARGEST_QUEUE_SIZE_UPDATER.compareAndSet(this, largest, size));
+        } while (size > largest && !LARGEST_QUEUE_SIZE_UPDATER.weakCompareAndSet(this, largest, size));
     }
 }