On Fri, Apr 8, 2011 at 6:09 PM, Dave Zarzycki <[email protected]> wrote: > Background: > > The __sync_*() atomic intrinsics do not directly expose the fundamental > atomic swap operation that many processors support. One can indirectly get at > the instruction by using __sync_lock_test_and_set(), but the documentation > for that intrinsic does not promise to be an atomic swap on all architectures > or even be a full barrier like the other __sync_*() intrinsics. This patch > fixes this oversight:
It's not really an oversight; the __sync_ intrinsics were invented by Intel for Itanium, and the Itanium xchg instruction isn't a full barrier. I don't see any harm in adding this anyway, although I'm not really an expert in lock-free algorithms. > This is my first clang patch, so please be understanding if I made any newbie > mistakes. > > Thanks for considering this change, I don't see anything wrong with the patch itself, but you should add a note in docs/LanguageExtensions.html. -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
