Eli, Thanks for the feedback. I've updated the patch:
__sync_swap-v2.patch
Description: Binary data
For whatever it may be worth, plain atomic swaps are invaluable to Apple's
modern threading library ("Grand Central Dispatch" a.k.a. libdispatch).
<http://www.apple.com/macosx/technology/#grandcentral>
davez
On Apr 8, 2011, at 7:38 PM, Eli Friedman wrote:
> 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
