From 69b3a4581dec751e2eec6b8df238b8dc45698217 Mon Sep 17 00:00:00 2001 From: ReactOS Portable Systems Group Date: Mon, 14 Jul 2008 03:17:57 +0000 Subject: [PATCH] - Enable timer expiration code. - Timers now work, along with full scheduling, dispatching and context switching, so our 5 second wait in init.c allows other threads to runs, then completes appropriately. svn path=/trunk/; revision=34491 --- reactos/ntoskrnl/ke/arm/time.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/reactos/ntoskrnl/ke/arm/time.c b/reactos/ntoskrnl/ke/arm/time.c index 22d0ae53f14..55a928de546 100644 --- a/reactos/ntoskrnl/ke/arm/time.c +++ b/reactos/ntoskrnl/ke/arm/time.c @@ -109,13 +109,17 @@ KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame, if (KiTimerTableListHead[Hand].Time.QuadPart <= InterruptTime.QuadPart) { // - // Timer has expired! + // Check if we are already doing expiration // - DPRINT1("hand: %d\n", Hand); - DPRINT1("Interrupt time: %I64x\n", InterruptTime.QuadPart); - DPRINT1("TIMER EXPIRATION: %I64x!!!\n", - KiTimerTableListHead[Hand].Time.QuadPart); - while (TRUE); + if (!Prcb->TimerRequest) + { + // + // Request a DPC to handle this + // + Prcb->TimerRequest = TrapFrame->SvcSp; + Prcb->TimerHand = Hand; + HalRequestSoftwareInterrupt(DISPATCH_LEVEL); + } } //