don't remove mutants twice from the thread's mutant list in
KeRundownThread(). This might fix bug 821
Modified: trunk/reactos/ntoskrnl/ke/kthread.c
_____
Modified: trunk/reactos/ntoskrnl/ke/kthread.c
--- trunk/reactos/ntoskrnl/ke/kthread.c 2005-09-30 21:32:01 UTC (rev
18178)
+++ trunk/reactos/ntoskrnl/ke/kthread.c 2005-09-30 22:00:30 UTC (rev
18179)
@@ -467,7 +467,7 @@
while (!IsListEmpty(&Thread->MutantListHead)) {
/* Get the Mutant */
- CurrentEntry = RemoveHeadList(&Thread->MutantListHead);
+ CurrentEntry = RemoveHeadList(&Thread->MutantListHead);
Mutant = CONTAINING_RECORD(CurrentEntry, KMUTANT,
MutantListEntry);
ASSERT(Mutant->ApcDisable == 0);
@@ -476,7 +476,6 @@
Mutant->Header.SignalState = 1;
Mutant->Abandoned = TRUE;
Mutant->OwnerThread = NULL;
- RemoveEntryList(&Mutant->MutantListEntry);
/* Check if the Wait List isn't empty */
DPRINT("Checking whether to wake the Mutant\n");