VarHandles & LMAX Disruptor

Brian Goetz brian.goetz at
Mon Jul 27 14:32:00 UTC 2015

>         - I think VarHandle.set/get should be called
>         setRelaxed/getRelaxed as
>         it> would make it more obvious to a user and a reader what those
>         methods are> going to do.  My initial assumption was that they were
>         no different from a> normal write/read of a field.
>     An alternative here is that get/set does whatever the default is for
>     that field (so a volatile field would get ordered access) and
>     {get,set}Relaxed would force a relaxed access (even for volatile
>     fields.)
> That would make sense, however it would preclude the ability to apply a
> normal load/store to volatile field.

Sorry, I wasn't clear.  "Alternative" applied to "get rid of get/set" 
within the context of having an explicit {set,get}Relaxed.  In other 
words, have getters/setters for all the modes, and then define "naked" 
get/set to mean "whatever is default for this variable.

More information about the valhalla-dev mailing list