From: sof Date: Fri, 8 Feb 2002 03:44:01 +0000 (+0000) Subject: [project @ 2002-02-08 03:44:01 by sof] X-Git-Tag: Approximately_9120_patches~121 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=199b5c0766a2c7888544a970d35ba4d8fd889a07;p=ghc-hetmet.git [project @ 2002-02-08 03:44:01 by sof] declare MainCapability + simplify releaseCapability() --- diff --git a/ghc/rts/Capability.c b/ghc/rts/Capability.c index fe8db06..78c10bf 100644 --- a/ghc/rts/Capability.c +++ b/ghc/rts/Capability.c @@ -22,6 +22,9 @@ #include "RtsUtils.h" #include "Capability.h" +#if !defined(SMP) +Capability MainCapability; /* for non-SMP, we have one global capability */ +#endif static void @@ -69,11 +72,11 @@ void grabCapability(Capability** cap) #endif } -void releaseCapability(Capability** cap) +void releaseCapability(Capability* cap) { #if defined(SMP) - (*cap)->link = free_capabilities; - free_capabilities = *cap; + cap->link = free_capabilities; + free_capabilities = cap; rts_n_free_capabilities++; #endif return; diff --git a/ghc/rts/Capability.h b/ghc/rts/Capability.h index 2872c83..cecbc8b 100644 --- a/ghc/rts/Capability.h +++ b/ghc/rts/Capability.h @@ -25,12 +25,12 @@ /* ToDo: assume that RtsFlags.h has been included at usage sites of Capability.h? */ #if !defined(SMP) -Capability MainCapability; +extern Capability MainCapability; #endif extern void initCapabilities(void); extern void grabCapability(Capability** cap); -extern void releaseCapability(Capability** cap); +extern void releaseCapability(Capability* cap); #if defined(SMP) extern nat rts_n_free_capabilities; /* total number of available capabilities */ diff --git a/ghc/rts/Schedule.c b/ghc/rts/Schedule.c index 71daf6a..52af386 100644 --- a/ghc/rts/Schedule.c +++ b/ghc/rts/Schedule.c @@ -1,5 +1,5 @@ /* --------------------------------------------------------------------------- - * $Id: Schedule.c,v 1.119 2002/02/07 06:33:20 sof Exp $ + * $Id: Schedule.c,v 1.120 2002/02/08 03:44:01 sof Exp $ * * (c) The GHC Team, 1998-2000 * @@ -1524,7 +1524,7 @@ suspendThread( StgRegTable *reg ) tok = cap->r.rCurrentTSO->id; /* Hand back capability */ - releaseCapability(&cap); + releaseCapability(cap); #if defined(RTS_SUPPORTS_THREADS) && !defined(SMP) /* Preparing to leave the RTS, so ensure there's a native thread/task