On Mar 4 2014, at 07:13 , Peter Levart <peter.lev...@gmail.com> wrote:

> On 03/04/2014 01:14 AM, Brian Burkhalter wrote:
>> - add AtomicReferenceFieldUpdater-type constant for stringCache 
>> initialization
> 
> Hi Brian,
> 
> By using volatile read and CAS, there's still a chance that multiple 
> concurrent threads will be invoking the layoutChars(true) concurrently, but 
> you guarantee that only a single instance of String will ever be returned as 
> a result of the toString() method. Is that what you were pursuing?

Yes. (I provided the AtomicReferenceFieldUpdater code). The previous 
implementation had a benign data race that could result in a later layoutChars 
result replacing an earlier result and multiple string instances being 
returned. The new implementation, at small cost, prevents multiple different 
instances from being returned.

Mike

Reply via email to