projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2005-04-05 12:19:54 by simonmar]
[ghc-hetmet.git]
/
ghc
/
rts
/
Capability.h
diff --git
a/ghc/rts/Capability.h
b/ghc/rts/Capability.h
index
b82ec09
..
c575335
100644
(file)
--- a/
ghc/rts/Capability.h
+++ b/
ghc/rts/Capability.h
@@
-80,6
+80,9
@@
extern void passCapability(Condition *pTargetThreadCond);
extern void passCapabilityToWorker( void );
extern nat rts_n_free_capabilities;
extern void passCapabilityToWorker( void );
extern nat rts_n_free_capabilities;
+
+extern Capability *free_capabilities;
+
/* number of worker threads waiting for a return capability
*/
extern nat rts_n_waiting_workers;
/* number of worker threads waiting for a return capability
*/
extern nat rts_n_waiting_workers;
@@
-101,7
+104,11
@@
static inline rtsBool noCapabilities (void)
static inline rtsBool allFreeCapabilities (void)
{
static inline rtsBool allFreeCapabilities (void)
{
+#if defined(SMP)
+ return (rts_n_free_capabilities == RTS_DEREF(RtsFlags).ParFlags.nNodes);
+#else
return (rts_n_free_capabilities == 1);
return (rts_n_free_capabilities == 1);
+#endif
}
#else // !RTS_SUPPORTS_THREADS
}
#else // !RTS_SUPPORTS_THREADS