Там где-то должен быть выставлен барьер. Если его нет, то компилятор и проц вполне могут поменять местами какие-то вызовы
Вот здесь у меня прямо фейспалмище. Действительно, какая разница? if(try_lock(&lock)) a++; Превращается в оптимизированный: call try_lock add dx, ax mov [a], dx
Обсуждают сегодня