don't remove mutants twice from the thread's mutant list in KeRundownThread(). This...
authorThomas Bluemel <thomas@reactsoft.com>
Fri, 30 Sep 2005 22:00:30 +0000 (22:00 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Fri, 30 Sep 2005 22:00:30 +0000 (22:00 +0000)
svn path=/trunk/; revision=18179

reactos/ntoskrnl/ke/kthread.c

index c3b58f0..2c54c4e 100644 (file)
@@ -467,7 +467,7 @@ KeRundownThread(VOID)
     while (!IsListEmpty(&Thread->MutantListHead)) {
 
         /* Get the Mutant */
     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);
 
         Mutant = CONTAINING_RECORD(CurrentEntry, KMUTANT, MutantListEntry);
         ASSERT(Mutant->ApcDisable == 0);
 
@@ -476,7 +476,6 @@ KeRundownThread(VOID)
         Mutant->Header.SignalState = 1;
         Mutant->Abandoned = TRUE;
         Mutant->OwnerThread = NULL;
         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");
 
         /* Check if the Wait List isn't empty */
         DPRINT("Checking whether to wake the Mutant\n");