summaryrefslogtreecommitdiff
path: root/ghc/rts/GCCompact.c
diff options
context:
space:
mode:
authorsimonmar <unknown>2005-04-05 12:19:57 +0000
committersimonmar <unknown>2005-04-05 12:19:57 +0000
commit1621421619df6f19dce3b8cb29471e5d3c731acb (patch)
treee4e545eac8569444d1df5c357677881d7c6f1231 /ghc/rts/GCCompact.c
parent14a5aadb84c34dbe2bee129ed80fdfa1fb12e3e0 (diff)
downloadhaskell-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.c2
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;