diff options
author | Ian Lynagh <igloo@earth.li> | 2006-12-11 13:10:04 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2006-12-11 13:10:04 +0000 |
commit | cf6b495d8f6d8f08fd6603c5ba2ec7a6acf7ac01 (patch) | |
tree | c580b3eac83af32a8f807914901181ed4a7dcf19 /rts/Task.h | |
parent | d526504719676871376324858fe2073aa2011424 (diff) | |
download | haskell-cf6b495d8f6d8f08fd6603c5ba2ec7a6acf7ac01.tar.gz |
Add freeScheduler/freeTaskManager and call it later than exitScheduler
We were freeing the tasks in exitScheduler (stopTaskManager) before
exitStorage (stat_exit), but the latter needs to walk down the list
printing stats. Resulted in segfaults with commands like
ghc -v0 -e main q.hs -H32m -H32m +RTS -Sstderr
(where q.hs is trivial), but very sensitive to exact commandline and
libc version or something.
Diffstat (limited to 'rts/Task.h')
-rw-r--r-- | rts/Task.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/Task.h b/rts/Task.h index cc450a74a1..3b7a08ee96 100644 --- a/rts/Task.h +++ b/rts/Task.h @@ -170,6 +170,7 @@ extern Task *all_tasks; // void initTaskManager (void); void stopTaskManager (void); +void freeTaskManager (void); // Create a new Task for a bound thread // Requires: sched_mutex. |