1. state_res := state; - машина состояний с защёлкой. Смена состояния только в конце обработки. Так не надо думать о side effect
2. Как же одно и то же? В состоянии 0 запускается открытие файла, а в 1 мы ждем когда же оно произойдет.
3. Очепятка
4. Опять же в 2 - начинаем писать, в 3 - ждем окончания. При первом вызове функция может сразу послать или сказать "принято к исполнению", можно сразу закрывать, а в 3-м - надо ждать результата АСИНХРОННОГО действия.
5. Все этапы парные. Начал и двигаемся до финала, начал и двигаемся до финала....




Ответить с цитированием
