ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
111475 Топик полностью
Cepгeй Бopщ (28.01.2008 14:41, просмотров: 150) ответил =AlexD= на Тааак... а если
Озадачил. Будет время - погоняю. Только наверное вот так: void OS::TEventFlag::Signal() { TCritSect cs; if (ProcessMap & (efOn - 1)) // if any process waits for event { OS::Kernel.ReadyProcessMap |= ProcessMap; // place all waiting processes to ready map ProcessMap = 0; // remove all processes from waiting map } else { ProcessMap = efOn; // set efOn bit } // to inform processes that waked-up by signal Kernel.Scheduler(); }Чувствую, что есть решение без проверки условия. Но пока оно ускользает. Беру тайм-аут, очень занят по основной работе.