jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicBoolean.java
changeset 40277 fd3c777aed08
parent 39725 9548f8d846e9
child 40734 48879ea67e2a
--- a/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicBoolean.java	Mon Aug 15 14:25:51 2016 +0100
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicBoolean.java	Mon Aug 15 09:04:40 2016 -0700
@@ -147,11 +147,7 @@
      * @return the previous value
      */
     public final boolean getAndSet(boolean newValue) {
-        boolean prev;
-        do {
-            prev = get();
-        } while (!compareAndSet(prev, newValue));
-        return prev;
+        return (int)VALUE.getAndSet(this, (newValue ? 1 : 0)) != 0;
     }
 
     /**