From b4e10fa87d58aa5f1cfbd3f8ca9f564cae71d36b Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Sat, 26 Mar 2005 20:14:06 +0000 Subject: [PATCH] - Fixed the wrong check for KMUTEX objects in KeRundownThread. - Fixed the endless loop in KeRundownThread. svn path=/trunk/; revision=14335 --- reactos/ntoskrnl/ke/kthread.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/ntoskrnl/ke/kthread.c b/reactos/ntoskrnl/ke/kthread.c index 9c141065990..dbfd3b50062 100644 --- a/reactos/ntoskrnl/ke/kthread.c +++ b/reactos/ntoskrnl/ke/kthread.c @@ -355,12 +355,12 @@ KeRundownThread(VOID) /* Lock the Dispatcher Database */ OldIrql = KeAcquireDispatcherDatabaseLock(); - CurrentEntry = Thread->MutantListHead.Flink; - while (CurrentEntry != &Thread->MutantListHead) { + while (!IsListEmpty(&Thread->MutantListHead)) { /* Get the Mutant */ + CurrentEntry = RemoveHeadList(&Thread->MutantListHead); Mutant = CONTAINING_RECORD(CurrentEntry, KMUTANT, MutantListEntry); - ASSERT(Mutant->ApcDisable); + ASSERT(Mutant->ApcDisable == 0); /* Uncondtionally abandon it */ DPRINT("Abandonning the Mutant\n");