On Mon, Sep 13, 2010 at 14:55, Peter Veentjer <[email protected]> wrote:
> Hi Charles,
>
> Hmm.. afaik it still could be possible that a thread sees a mixture of state
> not belonging to any thread at all.

Provided the object in question is properly constructed (the `this`
reference to not escape) then the setting of the final fields of the
object happens-before the object reference is made available to the
caller.

And to my knowledge, object references have the same atomicity and
visibility guarantees as ints. Meaning; you cannot see a reference
where one half of the bits point to one state, and the other to
another state.

In summary, what Charles is doing is technically safe for his use case.

>
> On Mon, Sep 13, 2010 at 2:50 PM, Charles Oliver Nutter <[email protected]>
> wrote:
>>
>> I'm looking for a clear answer on this.
>>
>> I have various places in JRuby where I've been hassled for not using
>> volatile fields. Specifically, on some of the method caches. These
>> caches have non-volatile fields referencing immutable tuples of [class
>> ID, method], and it's not important to me that all threads have the
>> same view of those fields. In fact, it's almost better that they
>> don't, since different threads will often be executing different code
>> and encountering different types.
>>
>> So, official verdict: if I don't care about different threads having a
>> consistent view of a field, there's no reason I need it to be
>> volatile, right?
>>
>> - Charlie
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "JVM Languages" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/jvm-languages?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "JVM Languages" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/jvm-languages?hl=en.
>



-- 
Venlig hilsen / Kind regards,
Christian Vest Hansen.

-- 
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en.

Reply via email to