Oops,  I skipped the volatile keyword while reading the code snippet.
Sorry :)

Luc P.



> No, it means exactly the same thing as volatile in Java (and is implemented 
> in the Volatile Java class which holds a single volatile field). Basically 
> a "volatile box" since a field must exist inside a class. The semantics are 
> the same as Java - writes are guaranteed to be seen by subsequent reads on 
> any thread (that property is not guaranteed by a non-volatile field). 
> 
> vswap! on a volatile is syntactically similar to swap! on an atom but 
> without the atomicity guarantees. That is, vswap! consists of a read 
> followed by a write but this is non-transactional so another thread could 
> change the value in between. In other words: don't use this unless you can 
> enforce thread isolation or safety through other means. Thus, volatiles are 
> dangerous *by default*, unlike every other stateful thing in Clojure.
> 
> Some stateful transducers use volatiles for performance and provide thread 
> isolation via how they are constructed and used.
> 
> 
> 
> On Tuesday, September 9, 2014 12:06:36 PM UTC-5, Luc wrote:
> >
> > The keyword has different meaning 
> > depending on the language and 
> > context. 
> >
> > Most of the time to prevent optimizations by the compiler to insure write 
> > ordering 
> > and some consistent view (Java use). 
> >
> > Not here. It's meant to warn that 
> > nothing is guaranteed, no synchronization, no consistent view. 
> >
> > It should be kept local (no leak 
> > outside of a narrow scope) and 
> > certainly not shared 
> > by multiple threads. 
> >
> > Luc P. 
> >
> >
> > > Excuse my ignorance but does "volatile!" have anything to do with Java's 
> > > "volatile" keyword? Is there any relation at all? I'm not suggesting a 
> > name 
> > > change, but it can be confusing coming from that angle. Maybe a blurb in 
> > > the doc string? 
> > > 
> > > -- 
> > > You received this message because you are subscribed to the Google 
> > > Groups "Clojure" group. 
> > > To post to this group, send email to clo...@googlegroups.com 
> > <javascript:> 
> > > Note that posts from new members are moderated - please be patient with 
> > your first post. 
> > > To unsubscribe from this group, send email to 
> > > clojure+u...@googlegroups.com <javascript:> 
> > > 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+u...@googlegroups.com <javascript:>. 
> > > For more options, visit https://groups.google.com/d/optout. 
> > > 
> > -- 
> > Luc Prefontaine<lprefo...@softaddicts.ca <javascript:>> sent by ibisMail! 
> >
> 
> -- 
> 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.
> 
--
Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad!

-- 
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