avoid a crash: don't return unless the run queue has some threads in it
authorSimon Marlow <marlowsd@gmail.com>
Wed, 11 Mar 2009 15:45:59 +0000 (15:45 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 11 Mar 2009 15:45:59 +0000 (15:45 +0000)
rts/win32/AwaitEvent.c

index 2175626..1b92c43 100644 (file)
@@ -45,14 +45,11 @@ awaitEvent(rtsBool wait)
         return;
     }
 
-    if (!ret) { 
-      return; /* still hold the lock */
-    }
-
-    // Return to the scheduler if:
+    // The return value from awaitRequests() is a red herring: ignore
+    // it.  Return to the scheduler if !wait, or
     //
     //  - we were interrupted
-    //  - new threads have arrived
+    //  - the run-queue is now non- empty
 
   } while (wait
           && sched_state == SCHED_RUNNING