LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

В musl есть аналогичная, где-то делает asm("pause":::"memory"), в другом месте:

#ifndef a_barrier
#define a_barrier a_barrier
static void a_barrier()
{
	volatile int tmp = 0;
	a_cas(&tmp, 0, 0);
}
#endif

#ifndef a_spin
#define a_spin a_barrier
#endif

Так что это, видимо, барьер для памяти, аналог sleep(0)/yield для атомиков.

Исходная версия xaizek, :

В musl есть аналогичная, где-то делает asm("pause":::"memory"), в другом месте:

#ifndef a_barrier
#define a_barrier a_barrier
static void a_barrier()
{
	volatile int tmp = 0;
	a_cas(&tmp, 0, 0);
}
#endif

#ifndef a_spin
#define a_spin a_barrier
#endif

Так что это, видимо, барьер для памяти.