Threads in the new ISO C Standard from 2011
Threads in the new ISO C Standard from 2011
Threads in the new ISO C Standard from 2011
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Example of Cumulative Order<strong>in</strong>g<br />
// <strong>in</strong>t a = b = 0;<br />
// Thread 1 Thread 2 Thread 3<br />
1:a = 1;<br />
2:lwsync<br />
3:x = a; // a == 1<br />
4:y = b;<br />
5:lwsync<br />
B = { 2,3,5,6 } 6:b = 2;<br />
7:x = b; // b == 2<br />
8:lwsync<br />
9:y = a; // a == 1<br />
A = { } A = { 2,3,4 } A = { 2,4,7 }<br />
B += { 7,8 } B = { 6,7,9 } B = { 9 }<br />
Due to cumulativity of lwsync, it’s certa<strong>in</strong> that if Thread 2 reads 1 <strong>in</strong><br />
access 3 and Thread 3 reads 2 <strong>in</strong> access 7 <strong>the</strong>n Thread 3 will read 1<br />
<strong>in</strong> access 9.<br />
Us<strong>in</strong>g <strong>in</strong>stead bc;isync Thread 3 may read zero <strong>in</strong> access 9.<br />
Jonas Skeppstedt (js@cs.lth.se) Lecture 6 2013 56 / 70