ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
111231 Топик полностью
=AlexD= (25.01.2008 12:42, просмотров: 207) ответил Сергей Борщ на Не понял, а кто сбрасывает Flags?
Ещё нашёл опечатки, вобщем, гдето так  bool OS::TEventFlag::Wait(TTimeout timeout) { TCritSect cs; if (Value == efOn) { if (Flags == 0) { Value = efOff; } return true; } else { TProcessMap PrioTag = GetPrioTag(Kernel.CurProcPriority); SetPrioTag(ProcessMap, PrioTag); // put current process to wait map ClrPrioTag(Kernel.ReadyProcessMap, PrioTag); // remove current process from ready map TBaseProcess* p = Kernel.ProcessTable[Kernel.CurProcPriority]; p->Timeout = timeout; Kernel.Scheduler(); ClrPrioTag(ProcessMap, PrioTag); // remove current process from wait list p->Timeout = 0; if (Flags & PrioTag) // if waked-up by signal() or signal_ISR() { ClrPrioTag(Flags, PrioTag); // clear flag for current process if (Flags == 0) { Value = efOff; } return true; } // otherwice waked-up by timeout or // by OS::ForceWakeUpProcess() return false; } }
Три кита на которых зиждется реклама: враньё, преувеличение, замалчивание. Новости СМИ - это политическая реклама.