--- jsr166/src/jsr166e/LongMaxUpdater.java 2013/01/07 07:14:01 1.7
+++ jsr166/src/jsr166e/LongMaxUpdater.java 2014/05/04 22:38:19 1.9
@@ -48,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);
}
@@ -62,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.