1 /* -----------------------------------------------------------------------------
2 * $Id: Sparks.h,v 1.4 2002/01/24 02:06:49 sof Exp $
4 * (c) The GHC Team, 2000
6 * Sparking support for GRAN, PAR and SMP versions of the RTS.
8 * ---------------------------------------------------------------------------*/
12 void findLocalSpark (rtsEvent *event, rtsBool *found_res, rtsSparkQ *spark_res);
13 rtsBool activateSpark (rtsEvent *event, rtsSparkQ spark);
14 rtsSpark *newSpark(StgClosure *node, nat name, nat gran_info,
15 nat size_info, nat par_info, nat local);
16 void add_to_spark_queue(rtsSpark *spark);
17 rtsSpark *delete_from_sparkq (rtsSpark *spark, PEs p, rtsBool dispose_too);
18 void disposeSpark(rtsSpark *spark);
19 void disposeSparkQ(rtsSparkQ spark);
20 void print_spark(rtsSpark *spark);
21 void print_sparkq(PEs proc);
22 void print_sparkq_stats(void);
23 nat spark_queue_len(PEs proc);
24 void markSparkQueue(void);
26 #elif defined(PAR) || defined(SMP)
28 StgClosure *findSpark( rtsBool );
29 rtsBool initSparkPools( void );
30 void markSparkQueue( void );
32 StgTSO *activateSpark (rtsSpark spark) ;
33 rtsBool add_to_spark_queue( StgClosure *closure, StgSparkPool *pool );
34 void markSparkQueue( void );
35 nat spark_queue_len( StgSparkPool *pool );
36 void disposeSpark( StgClosure *spark );