[libdispatch-dev] lib dispatch worker threads may loop depending on compiler optimization
zarzycki at apple.com
Fri Sep 9 08:49:03 PDT 2011
On Sep 9, 2011, at 8:44 AM, Paolo Bonzini wrote:
> On 09/09/2011 05:37 PM, Dave Zarzycki wrote:
>> I'm still betting that GCC changed in this regard.
> No, it didn't. Really, believe me, unlike you I can follow GCC development. ;)
If putting asm("" ::: "memory") before __sync_lock_test_and_set() fixes the bug, then that proves that GCC no longer considers __sync_lock_test_and_set() to be a full barrier.
More information about the libdispatch-dev