--- jsr166/src/jsr166e/LongMaxUpdater.java 2011/08/02 18:04:12 1.1 +++ jsr166/src/jsr166e/LongMaxUpdater.java 2014/05/04 22:38:19 1.9 @@ -5,10 +5,7 @@ */ package jsr166e; -import java.io.IOException; import java.io.Serializable; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; /** * One or more variables that together maintain a running {@code long} @@ -19,13 +16,14 @@ import java.io.ObjectOutputStream; * maximum across the variables maintaining updates. * *

This class extends {@link Number}, but does not define - * methods such as {@code hashCode} and {@code compareTo} because - * instances are expected to be mutated, and so are not useful as - * collection keys. + * methods such as {@code equals}, {@code hashCode} and {@code + * compareTo} because instances are expected to be mutated, and so are + * not useful as collection keys. * *

jsr166e note: This class is targeted to be placed in - * java.util.concurrent.atomic + * java.util.concurrent.atomic. * + * @since 1.8 * @author Doug Lea */ public class LongMaxUpdater extends Striped64 implements Serializable { @@ -50,13 +48,13 @@ public class LongMaxUpdater extends Stri * @param x the value to update */ public void update(long x) { - Cell[] as; long b, v; HashCode hc; Cell a; int n; + Cell[] as; long b, v; int[] hc; Cell a; int n; if ((as = cells) != null || (b = base) < x && !casBase(b, x)) { boolean uncontended = true; - int h = (hc = threadHashCode.get()).code; - if (as == null || (n = as.length) < 1 || - (a = as[(n - 1) & h]) == null || + if ((hc = threadHashCode.get()) == null || + as == null || (n = as.length) < 1 || + (a = as[(n - 1) & hc[0]]) == null || ((v = a.value) < x && !(uncontended = a.cas(v, x)))) retryUpdate(x, hc, uncontended); } @@ -64,7 +62,7 @@ public class LongMaxUpdater extends Stri /** * Returns the current maximum. The returned value is - * NOT an atomic snapshot: Invocation in the absence of + * NOT an atomic snapshot; invocation in the absence of * concurrent updates returns an accurate result, but concurrent * updates that occur while the value is being calculated might * not be incorporated. @@ -129,7 +127,7 @@ public class LongMaxUpdater extends Stri /** * Returns the String representation of the {@link #max}. - * @return the String representation of the {@link #max}. + * @return the String representation of the {@link #max} */ public String toString() { return Long.toString(max()); @@ -174,8 +172,8 @@ public class LongMaxUpdater extends Stri s.writeLong(max()); } - private void readObject(ObjectInputStream s) - throws IOException, ClassNotFoundException { + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); busy = 0; cells = null;