[jmm-dev] bitwise RMW operators, specifically testAndSetBit/BTS

Doug Lea dl at cs.oswego.edu
Fri Jul 15 19:17:30 UTC 2016


On 07/15/2016 12:27 PM, Doug Lea wrote:

> ... only the getAndX forms seem useful, with only Volatile
> and Release orderings. Using the default-volatile RMW convention,
> this would require 6 methods:
>

John suggests the slightly less weird (and thus better):
   getAndBitwiseOr, getAndBitwiseAnd,  getAndBitwiseXor
   getAndBitwiseOrRelease, getAndBitwiseAndRelease, getAndBitwiseXorRelease
that at least separates the two "And"s.

And in the spirit of not making another premature triage proposal,
perhaps these should also include Acquire variants:
  getAndBitwiseOrAcquire, getAndBitwiseAndAcquire, getAndBitwiseXorAcquire

The implicitly-volatile versions should be useful without implementation
penalty in the Acquire use cases that come to mind, but perhaps there are
others. Suggestions welcome.

-Doug



More information about the jmm-dev mailing list