RFR 8005311: Add Scalable Updatable Variables, DoubleAccumulator, DoubleAdder, LongAccumulator, LongAdder

Martin Buchholz martinrb at google.com
Sat Jan 5 20:10:04 UTC 2013


I did a bit of review.

----

"""The supplied accumulator function must be side-effect-free. It may be
re-applied when attempted updates fail due to contention among threads. """

Too strong.  I prefer """The supplied accumulator function should be
side-effect-free, since it may be re-applied when attempted updates fail
due to contention among threads. """  Users can usefully use side effects
for e.g. performance monitoring or debugging.

----

Double.MINIMUM_VALUE - WAT?  The alternative Double.MIN_VALUE actually
exists, but is also inappropriate, since it's positive.  Why not
Double.NEGATIVE_INFINITY, which is a true identity for max (ignoring NaN)?

----

Chris, the internal links in your generated javadoc are broken, e.g. I
clicked on
http://cr.openjdk.java.net/java/util/concurrent/atomic/DoubleAccumulator.html#reset()
Maybe the webrev tool needs fixing (as always?) ?

----

There need to be more docs on the requirements on the accumulatorFunction,
e.g. associative/commutative?

----

"""
public void reset()
Resets variables maintaining updates the given value.
"""

That sentence english not.  There is no "given value".  Perhaps "Resets
variables maintaining the accumulated value to the identity."""

----

Class DoubleAdder provides analogs of the functionality of this class for
the common special case of maintaining sums.)

I would add a code sample showing how to create a DoubleAccumulator
equivalent to a DoubleAdder.

----
but does not define methods such as hashCode and compareTo

I would include equals in that list of methods.
----



More information about the core-libs-dev mailing list