UNLOCKED
lock->lock = UNLOCKED;
while (atomic_test_and_set((int32*)&lock->lock, LOCKED, UNLOCKED)
if (atomic_test_and_set((int32*)&lock->lock, LOCKED, UNLOCKED) == LOCKED)