diff options
author | Simon Marlow <simonmarhaskell@gmail.com> | 2008-04-24 20:58:13 +0000 |
---|---|---|
committer | Simon Marlow <simonmarhaskell@gmail.com> | 2008-04-24 20:58:13 +0000 |
commit | 01ccdeea34b4853750326126f3bff9b2bdfa9a32 (patch) | |
tree | 386283d5e2e14a9e2396fe854b5950abb8883b9f /rts/Sparks.h | |
parent | 1d0e86e6cd96ce49f478c91fc01de565416ecc22 (diff) | |
download | haskell-01ccdeea34b4853750326126f3bff9b2bdfa9a32.tar.gz |
FIX #2185: sparks should not be treated as roots by the GC
Diffstat (limited to 'rts/Sparks.h')
-rw-r--r-- | rts/Sparks.h | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/rts/Sparks.h b/rts/Sparks.h index 57c02e6151..f617558b9e 100644 --- a/rts/Sparks.h +++ b/rts/Sparks.h @@ -9,12 +9,13 @@ #ifndef SPARKS_H #define SPARKS_H -#if defined(PARALLEL_HASKELL) || defined(THREADED_RTS) +#if defined(THREADED_RTS) StgClosure * findSpark (Capability *cap); void initSparkPools (void); void freeSparkPool (StgSparkPool *pool); void createSparkThread (Capability *cap, StgClosure *p); -void markSparkQueue (evac_fn evac, void *user, Capability *cap); +void updateSparkQueue (Capability *cap); +void traverseSparkQueue(evac_fn evac, void *user, Capability *cap); INLINE_HEADER void discardSparks (StgSparkPool *pool); INLINE_HEADER nat sparkPoolSize (StgSparkPool *pool); @@ -25,30 +26,6 @@ INLINE_HEADER nat sparkPoolSizeCap (Capability *cap); INLINE_HEADER rtsBool emptySparkPoolCap (Capability *cap); #endif -#if defined(PARALLEL_HASKELL) -StgTSO *activateSpark (rtsSpark spark) ; -rtsBool add_to_spark_queue( StgClosure *closure, StgSparkPool *pool ); -void markSparkQueue( void ); -nat spark_queue_len( StgSparkPool *pool ); -void disposeSpark( StgClosure *spark ); -#endif - -#if defined(GRAN) -void findLocalSpark (rtsEvent *event, rtsBool *found_res, rtsSparkQ *spark_res); -rtsBool activateSpark (rtsEvent *event, rtsSparkQ spark); -rtsSpark *newSpark(StgClosure *node, nat name, nat gran_info, - nat size_info, nat par_info, nat local); -void add_to_spark_queue(rtsSpark *spark); -rtsSpark *delete_from_sparkq (rtsSpark *spark, PEs p, rtsBool dispose_too); -void disposeSpark(rtsSpark *spark); -void disposeSparkQ(rtsSparkQ spark); -void print_spark(rtsSpark *spark); -void print_sparkq(PEs proc); -void print_sparkq_stats(void); -nat spark_queue_len(PEs proc); -void markSparkQueue(void); -#endif - /* ----------------------------------------------------------------------------- * PRIVATE below here * -------------------------------------------------------------------------- */ |