[libdispatch-dev] lib dispatch worker threads may loop depending on compiler optimization

Dave Zarzycki 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.

davez


More information about the libdispatch-dev mailing list