for (i = 0; ; )
{
if (PRECHECK(a -> AO_stack_bl[i])
- AO_compare_and_swap(a->AO_stack_bl+i, 0, first))
+ AO_compare_and_swap_acquire(a->AO_stack_bl+i, 0, first))
break;
++i;
if ( i >= AO_BL_SIZE )
/* We need to make sure that first is still the first entry on the */
/* list. Otherwise it's possible that a reinsertion of it was */
/* already started before we added the black list entry. */
- AO_nop_full(); /* TODO: Suboptimal on x86 */
# if defined(__alpha__) && (__GNUC__ == 4)
if (first != AO_load(list))
/* Workaround __builtin_expect bug found in */