- Fixed the wrong check for KMUTEX objects in KeRundownThread.

- Fixed the endless loop in KeRundownThread.

svn path=/trunk/; revision=14335
This commit is contained in:
Hartmut Birr 2005-03-26 20:14:06 +00:00
parent a24101498d
commit b4e10fa87d

View file

@ -355,12 +355,12 @@ KeRundownThread(VOID)
/* Lock the Dispatcher Database */ /* Lock the Dispatcher Database */
OldIrql = KeAcquireDispatcherDatabaseLock(); OldIrql = KeAcquireDispatcherDatabaseLock();
CurrentEntry = Thread->MutantListHead.Flink; while (!IsListEmpty(&Thread->MutantListHead)) {
while (CurrentEntry != &Thread->MutantListHead) {
/* Get the Mutant */ /* Get the Mutant */
CurrentEntry = RemoveHeadList(&Thread->MutantListHead);
Mutant = CONTAINING_RECORD(CurrentEntry, KMUTANT, MutantListEntry); Mutant = CONTAINING_RECORD(CurrentEntry, KMUTANT, MutantListEntry);
ASSERT(Mutant->ApcDisable); ASSERT(Mutant->ApcDisable == 0);
/* Uncondtionally abandon it */ /* Uncondtionally abandon it */
DPRINT("Abandonning the Mutant\n"); DPRINT("Abandonning the Mutant\n");