Цитата(gladov @ Nov 11 2010, 11:03)

Объясните плз, почему TEventFlag.Wait() работает по-разному (очищает флаг или нет) в зависимости от того взведен флаг на момент запроса или нет? Я для себя никаких плюсов этого не вижу, а сумятицу в голову (в мою конкретно) вносит.
Нет, флаг чистится всегда если есть хоть один ждущий процесс. Будятся все ждущие процессы и чистится флаг.
Цитата(gladov @ Nov 11 2010, 11:03)

Вообще идея понятна но смущает то, что выйдя из wait() я не знаю, очищен ли уже флаг или нет.
Должен быть очищен. В момент выхода из wait() он может быть уже снова взведен, но в момент пробуждения ждущего процесса он очищается.