X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FSchedule.c;h=a11a15e94d9733a9a84c79adddaa61e60597dc66;hp=c61e623a03a7a4a2e8d0cc38ff985e005d04173c;hb=ed12b7043fa98928f75c289a756fbcef546315f8;hpb=6ffb1cec5bc6fcc834547fc456322d2eb2418ff6 diff --git a/rts/Schedule.c b/rts/Schedule.c index c61e623..a11a15e 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -1808,6 +1808,9 @@ 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_event("Thread Finished",t); + #if defined(GRAN) endThread(t, CurrentProc); // clean-up the thread #elif defined(PARALLEL_HASKELL) @@ -2578,6 +2581,8 @@ exitScheduler( void ) boundTaskExiting(task); stopTaskManager(); } +#else + freeCapability(&MainCapability); #endif } @@ -2585,6 +2590,9 @@ void freeScheduler( void ) { freeTaskManager(); + if (n_capabilities != 1) { + stgFree(capabilities); + } #if defined(THREADED_RTS) closeMutex(&sched_mutex); #endif