[project @ 2002-02-08 03:44:01 by sof]
authorsof <unknown>
Fri, 8 Feb 2002 03:44:01 +0000 (03:44 +0000)
committersof <unknown>
Fri, 8 Feb 2002 03:44:01 +0000 (03:44 +0000)
declare MainCapability + simplify releaseCapability()

ghc/rts/Capability.c
ghc/rts/Capability.h
ghc/rts/Schedule.c

index fe8db06..78c10bf 100644 (file)
@@ -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;
index 2872c83..cecbc8b 100644 (file)
 /* 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 */
index 71daf6a..52af386 100644 (file)
@@ -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