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