X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FSparks.h;h=44a00f1524b8a2ae00e29983a30b927ef1452120;hb=31578e2242df87c362e1e976109dfcadf335df63;hp=cd62971ca008e9bab86187b99f4e2f5fdf66381d;hpb=b933b46923f9e67fbb20a62b9ccde5a9a3e8fb7e;p=ghc-hetmet.git diff --git a/ghc/rts/Sparks.h b/ghc/rts/Sparks.h index cd62971..44a00f1 100644 --- a/ghc/rts/Sparks.h +++ b/ghc/rts/Sparks.h @@ -1,14 +1,38 @@ /* ----------------------------------------------------------------------------- - * $Id: Sparks.h,v 1.1 2000/01/12 15:15:18 simonmar Exp $ * * (c) The GHC Team, 2000 * - * Sparking support for PAR and SMP versions of the RTS. - * + * Sparking support for GRAN, PAR and SMP versions of the RTS. + * * ---------------------------------------------------------------------------*/ +#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); + +#elif defined(PAR) || defined(SMP) + +StgClosure *findSpark( rtsBool ); void initSparkPools( void ); void markSparkQueue( void ); -StgClosure * findSpark( void ); +#if defined(PAR) +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 + +#endif