Perhaps me means dangerous as in it shouldn't be done causually, and that it 
could become a problematic habit if formed.

On Wed, Sep 10, 2014 at 8:55 PM, Brent Millare <brent.mill...@gmail.com>
wrote:

> I understand usage of volatiles are dangerous via vswap! but what about 
> creation? Again relating to what you said, 'I asked Rich and he said 
> "making a volatile is as dangerous as any ! op".'
> On Wednesday, September 10, 2014 10:19:33 AM UTC-4, Alex Miller wrote:
>>
>> Usually that's called "visibility". 
>>
>> Atoms are *not* subject to race conditions if swap! is called from 
>> multiple threads (the state of the atom will not change while the update 
>> function is being applied). The atom is thus "safe" to be used from 
>> multiple threads.
>>
>> Volatiles *are* subject to race conditions with vswap! is called from 
>> multiple threads (the state of the volatile may change while the update 
>> function is being applied). The volatile is thus "dangerous" and safety is 
>> derived from how it's used.
>>
>> On Wednesday, September 10, 2014 8:44:27 AM UTC-5, Brent Millare wrote:
>>>
>>> When I say synchronization, I specifically mean "writes are guaranteed to 
>>> be seen by subsequent reads on any thread*" *as Alex said.
>>>
>>> On Wednesday, September 10, 2014 9:37:09 AM UTC-4, Brent Millare wrote:
>>>>
>>>> So to summarize, Clojure's volatile provides synchronization across 
>>>> threads but does not provide atomaticity with vswap!. So, as a follow up 
>>>> question, then why would the creation of a volatile be "dangerous" but 
>>>> creating an atom isn't? (Hence the exclamation point in the name 
>>>> "volatile!")
>>>>
>>>
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to