1 #1 Why this data structure is non-SC (but it's SC at abstraction).
3 The underlying pattern of the non-SCness are as the following:
9 Suppose there are two identical threads, both having a writer followed by a
13 m_written.CAS; m_rdwr.CAS;
15 m_rdwr.CAS; m_written.CAS; // In write_publish()
17 m_written.load; // a m_rdwr.load; // The first in the read_fetch() // b
19 a & b can both read old value and it's non-SC. However, the later loads and CAS
20 in the loops will finally fix this problem.