Я читал об алгоритме Петерсона для взаимного исключения. Затем возник вопрос, что произойдет, если мы изменим порядок первой и второй команд в цикле do ... while? Я не вижу, чтобы что-то происходило, если мы это сделаем ... Кто-нибудь может сказать мне, что мне не хватает?
do {
flag[me] = TRUE;
turn = other;
while (flag[other] && turn == other)
;
critical section
flag[me] = FALSE;
remainder section
} while (TRUE);