From cb73be0180baa84ee4bfe2294d110cb440b367fa Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 1 Oct 2008 16:44:27 +0000 Subject: [PATCH] add some more GC roots (fixes conc048, and possibly some others) --- rts/RtsStartup.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index fd84000..fbebdb9 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -225,11 +225,19 @@ hs_init(int *argc, char **argv[]) /* initialise the stable pointer table */ initStablePtrTable(); - /* Add some GC roots (using stable pointers): these are needed by - * all foreign export stubs, so they have to be treated as + /* Add some GC roots for things in the base package that the RTS + * knows about. We don't know whether these turn out to be CAFs + * or refer to CAFs, but we have to assume that they might. */ getStablePtr((StgPtr)base_GHCziTopHandler_runIO_closure); getStablePtr((StgPtr)base_GHCziTopHandler_runNonIO_closure); + getStablePtr((StgPtr)stackOverflow_closure); + getStablePtr((StgPtr)heapOverflow_closure); + getStablePtr((StgPtr)runFinalizerBatch_closure); + getStablePtr((StgPtr)unpackCString_closure); + getStablePtr((StgPtr)blockedOnDeadMVar_closure); + getStablePtr((StgPtr)nonTermination_closure); + getStablePtr((StgPtr)blockedIndefinitely_closure); /* initialise the shared Typeable store */ initTypeableStore(); -- 1.7.10.4