CVS difference for ai12s/ai12-0234-1.txt

Differences between 1.8 and version 1.9
Log of other versions for file ai12s/ai12-0234-1.txt

--- ai12s/ai12-0234-1.txt	2018/06/12 05:28:47	1.8
+++ ai12s/ai12-0234-1.txt	2018/06/16 03:03:27	1.9
@@ -3090,3 +3090,40 @@
+From: Brad Moore
+Sent: Wednesday, June 13, 2018  7:28 AM
+> But "not useful for synchronization of threads" is not the same as 
+> "not useful for sharing data between threads". It just has to be 
+> shared using some other method (including atomics) for synchronization.
+I believe that is how I am using the volatile keyword. Basically, I use it as
+a lightweight method to determine whether synchronization is needed, and if
+so, then I use a protected object to do the synchronization.
+From: Randy Brukardt
+Sent: Thursday, June 14, 2018  6:34 PM
+This sounds backwards to me (although I'm at the limits of my knowledge 
+here!). You can only trust a read of a volatile object *after* a 
+synchronization point, as to prevent erroneousness, the actions (the write 
+and the read) have to be sequential. The means either a protected action, 
+an atomic operation, or one of the "signaling" operations (rendezvous et. 
+If the read and write are not separated by something making then sequential,
+then it isn't trustworthy (although practically I'd expect that eventually
+the change would get reflected, but not necessarily before several writes 
+I remember Robert saying that there are things that are formally erroneous,
+but in practice will work fine, and your use might in fact be one of those.
+You have no guarantees as to how long it will take for the write to show up
+in other tasks, but it's hard to imagine that it won't happen eventually
+(especially as it is highly likely that some synchronization will happen
+sooner or later).

Questions? Ask the ACAA Technical Agent