1 /* -----------------------------------------------------------------------------
3 * (c) The GHC Team, 2000
5 * Sparking support for GRAN, PAR and SMP versions of the RTS.
7 * ---------------------------------------------------------------------------*/
14 void findLocalSpark (rtsEvent *event, rtsBool *found_res, rtsSparkQ *spark_res);
15 rtsBool activateSpark (rtsEvent *event, rtsSparkQ spark);
16 rtsSpark *newSpark(StgClosure *node, nat name, nat gran_info,
17 nat size_info, nat par_info, nat local);
18 void add_to_spark_queue(rtsSpark *spark);
19 rtsSpark *delete_from_sparkq (rtsSpark *spark, PEs p, rtsBool dispose_too);
20 void disposeSpark(rtsSpark *spark);
21 void disposeSparkQ(rtsSparkQ spark);
22 void print_spark(rtsSpark *spark);
23 void print_sparkq(PEs proc);
24 void print_sparkq_stats(void);
25 nat spark_queue_len(PEs proc);
26 void markSparkQueue(void);
28 #elif defined(PAR) || defined(SMP)
30 StgClosure *findSpark( rtsBool );
31 void initSparkPools( void );
32 void markSparkQueue( void );
34 StgTSO *activateSpark (rtsSpark spark) ;
35 rtsBool add_to_spark_queue( StgClosure *closure, StgSparkPool *pool );
36 void markSparkQueue( void );
37 nat spark_queue_len( StgSparkPool *pool );
38 void disposeSpark( StgClosure *spark );