diff options
author | simonmar <unknown> | 2005-04-05 12:19:57 +0000 |
---|---|---|
committer | simonmar <unknown> | 2005-04-05 12:19:57 +0000 |
commit | 1621421619df6f19dce3b8cb29471e5d3c731acb (patch) | |
tree | e4e545eac8569444d1df5c357677881d7c6f1231 /ghc/rts/GCCompact.c | |
parent | 14a5aadb84c34dbe2bee129ed80fdfa1fb12e3e0 (diff) | |
download | haskell-1621421619df6f19dce3b8cb29471e5d3c731acb.tar.gz |
[project @ 2005-04-05 12:19:54 by simonmar]
Some multi-processor hackery, including
- Don't hang blocked threads off BLACKHOLEs any more, instead keep
them all on a separate queue which is checked periodically for
threads to wake up.
This is good because (a) we don't have to worry about locking the
closure in SMP mode when we want to block on it, and (b) it means
the standard update code doesn't need to wake up any threads or
check for a BLACKHOLE_BQ, simplifying the update code.
The downside is that if there are lots of threads blocked on
BLACKHOLEs, we might have to do a lot of repeated list traversal.
We don't expect this to be common, though. conc023 goes slower
with this change, but we expect most programs to benefit from the
shorter update code.
- Fixing up the Capability code to handle multiple capabilities (SMP
mode), and related changes to get the SMP mode at least building.
Diffstat (limited to 'ghc/rts/GCCompact.c')
-rw-r--r-- | ghc/rts/GCCompact.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ghc/rts/GCCompact.c b/ghc/rts/GCCompact.c index c6a8f6e73b..f126cfee2c 100644 --- a/ghc/rts/GCCompact.c +++ b/ghc/rts/GCCompact.c @@ -10,6 +10,7 @@ #include "Rts.h" #include "RtsUtils.h" #include "RtsFlags.h" +#include "OSThreads.h" #include "Storage.h" #include "BlockAlloc.h" #include "MBlock.h" @@ -548,7 +549,6 @@ thread_obj (StgInfoTable *info, StgPtr p) case SE_CAF_BLACKHOLE: case SE_BLACKHOLE: case BLACKHOLE: - case BLACKHOLE_BQ: { StgPtr end; |