This looks fine to me.
Thanks,
David
On 1/07/2013 9:51 PM, Thomas Schatzl wrote:
Hi all,
On Mon, 2013-07-01 at 15:44 +0400, Aleksey Shipilev wrote:
On 07/01/2013 03:37 PM, David Holmes wrote:
On 1/07/2013 8:14 PM, Aleksey Shipilev wrote:
The same "thou shalt not do multiple volatile reads" applies to
"(r.queue == NULL) || (r.queue == ENQUEUED)" now.
Doesn't that just reduce to "r.queue != this" ? (The assert suggests
so :) )
Thomas' original patch had this in form of "r.queue != this". I argue it
is more future-proof to distinguish the concrete cases.
:)
I also thought it was more understandable if the cases were explicitly
enumerated, in addition to the assert.
I changed this in
http://cr.openjdk.java.net/~tschatzl/8014890/webrev.refactor to that
version now, using a temporary variable that stores r.queue before the
checks to avoid the double volatile reads.
However for me either version is fine, just tell me what you favor.
I am not really happy about bitwise ORing the two comparison results as
it seems to reduce readability at no real gain.
Thanks,
Thomas