> On 29 Aug 2016, at 15:32, Martin Buchholz <marti...@google.com> wrote:
> 
> We had already agreed on making these changes, and the detail looks good, so 
> approved!
> 

Thanks.


> but ... I wish there was less confusion ... maybe it's unavoidable ... I'm 
> going to check the docs carefully every time I use one of these APIs!  ... 
> feel free to ignore rambling:
> 
> I am having second thoughts about whether it's too late to fix our API wart.  
> Suppose we make weakCompareAndSet the one with volatile semantics and 
> weakCompareAndSetPlain the one with plain semantics?  The normal rule is 
> never to change the definition of an API, but here:
> 
> - we would only be strengthening the API, so previous users of 
> weakCompareAndSet will not be broken
> - all known historical implementations of weakCompareAndSet pre-jdk9 in fact 
> delegated to volatile  CAS (is this true?), so future users of 
> weakCompareAndSet will not be broken in practice when their software is used 
> on jdk8.
> 

.. and deprecate weakCompareAndSetVolatile?

I did wonder about that, it seems a little sneaky, so i did not pursue it, 
existing uses will still function but not necessarily to the same degree, so it 
could still be perceived as broken.

There are however very few use-cases of these methods. I used such usage 
analysis to justify depreciation, but I suppose that same analysis could also 
justify a change in behaviour. Thoughts?

Paul.

Reply via email to