[concurrency-interest] Ordering Question
jsampson at guidewire.com
Wed Jul 20 01:19:58 EDT 2016
I'm confused by the question. If T2 runs completely after T1, you get A=1 and B=0 without any reordering whatsoever. The only outcome that is impossible without reordering is A=0 and B=0. Is that the case you're asking about?
From: Concurrency-interest [mailto:concurrency-interest-bounces at cs.oswego.edu] On Behalf Of Michael Barker
Sent: Tuesday, July 19, 2016 7:11 PM
Subject: [concurrency-interest] Ordering Question
I have a question around ordering of events.
Given, threads (T1, T2), and variables (A, B, X, Y) where X and Y are shared on the heap and visible to T1 and T2.
X = 0
Y = 0;
1) X = 1 (lazySet/putOrdered)
2) B = Y (volatile read)
3) Y = 1 (compare and set)
4) A = X (volatile read)
Is it possible to get a final state of A = 1 and B = 0?
My current suspicion is that it is, due to 1) and 2) being reordered. If so, can the final state of A=1, B=0 be prevented by strengthening 1) to be a volatile store?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Concurrency-interest