[project @ 2005-11-25 14:33:12 by simonmar]
authorsimonmar <unknown>
Fri, 25 Nov 2005 14:33:12 +0000 (14:33 +0000)
committersimonmar <unknown>
Fri, 25 Nov 2005 14:33:12 +0000 (14:33 +0000)
We must empty the suspended_ccalling_tasks and the returning_task list
when forking.

ghc/rts/Schedule.c

index 8fe711a..d1a6a55 100644 (file)
@@ -2088,9 +2088,13 @@ forkProcess(HsStablePtr *entry
        }
        RELEASE_LOCK(&sched_mutex);
 
+       cap->suspended_ccalling_tasks = NULL;
+
 #if defined(THREADED_RTS)
        // wipe our spare workers list.
        cap->spare_workers = NULL;
+       cap->returning_tasks_hd = NULL;
+       cap->returning_tasks_tl = NULL;
 #endif
 
        cap = rts_evalStableIO(cap, entry, NULL);  // run the action