учитывая алгоритм быстрого мьютекса лампорта, я пытаюсь понять, почему они там ожидают.
Алгоритм:
start: b[i] = true
x = i
if y != 0 then b[i] = false
await y = 0
goto start
fi
y = i
if x != i then b[i] = false
for j = 1 to n do await b[j] = false od
if y != i then await y = 0
goto start
fi
fi
critical section
y = 0
b[i] = false
Разве мы не можем просто удалить их обоих?