[NTOS:KE]
[reactos.git] / reactos / ntoskrnl / ke / i386 / thrdini.c
index 66264b5..683ed88 100644 (file)
@@ -270,15 +270,15 @@ KiIdleLoop(VOID)
     PKPRCB Prcb = KeGetCurrentPrcb();
     PKTHREAD OldThread, NewThread;
 
-    /* Initialize the idle loop: disable interrupts */
-    _enable();
-    YieldProcessor();
-    YieldProcessor();
-    _disable();
-
     /* Now loop forever */
     while (TRUE)
     {
+        /* Start of the idle loop: disable interrupts */
+        _enable();
+        YieldProcessor();
+        YieldProcessor();
+        _disable();
+
         /* Check for pending timers, pending DPCs, or pending ready threads */
         if ((Prcb->DpcData[0].DpcQueueDepth) ||
             (Prcb->TimerRequest) ||
@@ -310,12 +310,6 @@ KiIdleLoop(VOID)
 
             /* Switch away from the idle thread */
             KiSwapContext(APC_LEVEL, OldThread);
-
-            /* We are back in the idle thread -- disable interrupts again */
-            _enable();
-            YieldProcessor();
-            YieldProcessor();
-            _disable();
         }
         else
         {