--- jsr166/src/jsr166e/DoubleMaxUpdater.java 2011/09/10 01:44:53 1.3 +++ jsr166/src/jsr166e/DoubleMaxUpdater.java 2014/05/05 01:57:35 1.11 @@ -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 double} @@ -19,12 +16,12 @@ import java.io.ObjectOutputStream; * current 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 @@ -60,13 +57,13 @@ public class DoubleMaxUpdater extends St */ public void update(double x) { long lx = Double.doubleToRawLongBits(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 || (Double.longBitsToDouble(b = base) < x && !casBase(b, lx))) { 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 || (Double.longBitsToDouble(v = a.value) < x && !(uncontended = a.cas(v, lx)))) retryUpdate(lx, hc, uncontended); @@ -75,7 +72,7 @@ public class DoubleMaxUpdater extends St /** * 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. @@ -157,7 +154,7 @@ public class DoubleMaxUpdater extends St /** * Returns the {@link #max} as a {@code long} after a - * primitive conversion. + * narrowing primitive conversion. */ public long longValue() { return (long)max(); @@ -165,7 +162,7 @@ public class DoubleMaxUpdater extends St /** * Returns the {@link #max} as an {@code int} after a - * primitive conversion. + * narrowing primitive conversion. */ public int intValue() { return (int)max(); @@ -173,7 +170,7 @@ public class DoubleMaxUpdater extends St /** * Returns the {@link #max} as a {@code float} - * after a primitive conversion. + * after a narrowing primitive conversion. */ public float floatValue() { return (float)max(); @@ -185,8 +182,8 @@ public class DoubleMaxUpdater extends St s.writeDouble(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;