On 04/27/2012 11:46 AM, Leonard Plentz wrote: > While your citations are technically from a draft proposal, I'm > substantially convinced that you're correct in your assertion that > "You can't have a data race if the threads don't access the same > objects", byte-granularity assumed. In any event, thank you very much > for the guidance. > > For the benefit of the archive, I found this related thread: > http://lwn.net/Articles/479626/ > > which quotes, as you did, that: > > "Two expression evaluations conflict if one of them modifies a memory > location and the other one reads or modifies the same memory > location." > > It seems to me that the danger herein lies in the environment in which > "same" is evaluated. What you've suggested is that the evaluation is > to occur at the memory controller level, not at the compiler level. (I > think that makes sense, but I'm not sure it's explicit in the spec.) > So there's a small danger here that one could consider nonconflicting > an expression which modified only orthogonal memory locations at the > superficial C level, but which resolved to read-modify-write conflicts > at the cache line level. That would be a nonconforming implementation. Andrew.