> On Jan 15, 2018, at 6:00 AM, Vladimir Ivanov <vladimir.x.iva...@oracle.com> 
> wrote:
> 
> 
>> This isn’t much different from the already allowed fine tuning of memory 
>> model effects (e.g., observing stale values from a plain write). In those 
>> scenarios, as is the case with @Stable, developers have to be aware of and 
>> honor the respective contract. It could be argued that bugs arising from 
>> contract violations of @Stable are easier to catch, due to their persistent 
>> nature.
> 
> The crucial difference is that @Stable doesn’t obey JMM while others do 
> (though you can break that as well using Unsafe or Reflection API), so all 
> the tricks programmers rely on (locks, finals, volatiles, fences) don't work.

Right and also VarHandle and AtomicReferenceFieldUpdater, which let you weaken 
the effect of a write, such that stale reads on the reading side may occur.

-Jason

Reply via email to