Мне было интересно, в чем разница между ожиданием установки флага с помощью оператора ожидания или традиционного цикла, пока флаг не будет установлен.
wait (flag === 1); //Implementation 1 while ( flag != 1); //Implementation 2
Оператор wait блокирует текущий процесс, пока выражение не станет истинным.
wait
Записанный вами цикл while становится бесконечным циклом с нулевой задержкой, если выражение истинно (flag ложно). Это повесит симуляцию.
while
flag