- Thanks a lot to Thomas for his brutal test application which allowed me to discover this bug and the bugs addressed in the previous commits (related to the wait list and thread scheduler list corruption).
svn path=/trunk/; revision=23057
/* Initialize the Suspend Semaphore */
KeInitializeSemaphore(&Thread->SuspendSemaphore, 0, 128);
- /* FIXME OPTIMIZATION OF DOOM. DO NOT ENABLE FIXME */
+ /* Setup the timer */
Timer = &Thread->Timer;
KeInitializeTimer(Timer);
TimerWaitBlock = &Thread->WaitBlock[TIMER_WAIT_BLOCK];
&WaitBlock->WaitListEntry;
Timer->Header.WaitListHead.Blink =
&WaitBlock->WaitListEntry;
+ WaitBlock->WaitListEntry.Flink =
+ &Timer->Header.WaitListHead;
+ WaitBlock->WaitListEntry.Blink =
+ &Timer->Header.WaitListHead;
/* Create Timer */
KiInsertTimer(Timer, *Timeout);
/* Check if we had a timeout */
if (Timeout)
{
- /* FIXME: Fixup interval */
- DPRINT1("FIXME!!!\n");
+ DPRINT1("If you see this message, contact Alex ASAP\n");
+ KEBUGCHECK(0);
}
}
return WaitStatus;
}
- /* FIXME: Fixup interval */
+ /* Check if we had a timeout */
+ DPRINT1("If you see this message, contact Alex ASAP\n");
+ KEBUGCHECK(0);
}
/* Acquire again the lock */
/* Check if we had a timeout */
if (Timeout)
{
- /* FIXME: Fixup interval */
+ DPRINT1("If you see this message, contact Alex ASAP\n");
+ KEBUGCHECK(0);
}
}
/* Check if we had a timeout */
if (Timeout)
{
- /* FIXME: Fixup interval */
+ DPRINT1("If you see this message, contact Alex ASAP\n");
+ KEBUGCHECK(0);
}
/* Acquire again the lock */