X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.c;h=afd8c28a08a65f6a7e6127cc2c22915c50ef7d64;hb=006a18ea83799c0d4255071a2f8c08d3e9c7d84f;hp=f3d956a99038dbaebd1c00269e0e4e8a220b779a;hpb=daa640e41e5bb964adc385509d97220b96d4ac5e;p=ghc-hetmet.git diff --git a/rts/Schedule.c b/rts/Schedule.c index f3d956a..afd8c28 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -7,6 +7,7 @@ * --------------------------------------------------------------------------*/ #include "PosixSource.h" +#define KEEP_LOCKCLOSURE #include "Rts.h" #include "SchedAPI.h" #include "RtsUtils.h" @@ -1813,9 +1814,6 @@ scheduleHandleThreadFinished (Capability *cap STG_UNUSED, Task *task, StgTSO *t) debugTrace(DEBUG_sched, "--++ thread %lu (%s) finished", (unsigned long)t->id, whatNext_strs[t->what_next]); - /* Inform the Hpc that a thread has finished */ - hs_hpc_thread_finished_event(t); - #if defined(GRAN) endThread(t, CurrentProc); // clean-up the thread #elif defined(PARALLEL_HASKELL) @@ -2579,7 +2577,8 @@ initScheduler(void) } void -exitScheduler( void ) +exitScheduler( rtsBool wait_foreign ) + /* see Capability.c, shutdownCapability() */ { Task *task = NULL; @@ -2601,7 +2600,7 @@ exitScheduler( void ) nat i; for (i = 0; i < n_capabilities; i++) { - shutdownCapability(&capabilities[i], task); + shutdownCapability(&capabilities[i], task, wait_foreign); } boundTaskExiting(task); stopTaskManager();