Am Sonntag, den 17.05.2015, 13:59 -0400 schrieb Rich Felker: > > Ah sorry, I probably went too fast. My last paragraph would be for all > > atomic operations, so in particular 32 bit. A macro "a_load" would > > make intentions clearer and would perhaps allow to implement an > > optional compile time check to see if we use any object consistently > > as atomic or not. > > The reason I'm mildly against this is that all current reads of > atomics, except via the return value of a_cas or a_fetch_add, are > relaxed-order. We don't care if we see a stale value; if staleness > could be a problem, the caller takes care of that in an efficient way. > Having a_load that's relaxed-order whereas all the existing atomics > are seq_cst order would be an inconsistent API design. I still wasn't clear enough, sorry. My idea was not that such a function or macro should change anything on the binary code that is produced, at least for production builds. I just thought to encapsulate all atomic accesses into a type and functions that allow to have a compile check. With that we could ensure that actually all accesses to such an object are through these functions. The advantage of C11's model for atomic is that this a qualifier, and then the compiler automatically checks (or ensures) that all accesses are atomic. We don't have that luxury, here, but we could get a bit closer to it. Jens -- :: INRIA Nancy Grand Est ::: Camus ::::::: ICube/ICPS ::: :: ::::::::::::::: office Strasbourg : +33 368854536 :: :: :::::::::::::::::::::: gsm France : +33 651400183 :: :: ::::::::::::::: gsm international : +49 15737185122 :: :: http://icube-icps.unistra.fr/index.php/Jens_Gustedt ::