O>Использование атомарных инструкций с lock-ом возможно решит эту проблему, но ударит по перфомансу..
не решит
потому что xchg умеет только r/rm, r или наоборот r, r/rm
соотв-но инструкция lock xchg [eax], [eax] не компилируется:
error: invalid combination of opcode and operands