summaryrefslogtreecommitdiff
path: root/rts/posix
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-11-13 10:45:18 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-11-13 10:45:18 +0000
commite5959748501564df4a266cbf4df94cb28327f76d (patch)
treefb34ab2eb5c7a6c0b1d5a27ae05471d2c517b70b /rts/posix
parent3bc73cd67e6cfacd2fc823019f1b6012cdf1ccb4 (diff)
downloadhaskell-e5959748501564df4a266cbf4df94cb28327f76d.tar.gz
The rest of the #1185 patch (forkProcess and -threaded)
Due to darcs confusion, I managed to leave out part of the patch for #1185. This should make 1185(threaded1) go through now.
Diffstat (limited to 'rts/posix')
-rw-r--r--rts/posix/Signals.c8
-rw-r--r--rts/posix/Signals.h2
2 files changed, 9 insertions, 1 deletions
diff --git a/rts/posix/Signals.c b/rts/posix/Signals.c
index 3b93fccbb7..98115bac8a 100644
--- a/rts/posix/Signals.c
+++ b/rts/posix/Signals.c
@@ -135,6 +135,12 @@ ioManagerDie (void)
}
}
+Capability *
+ioManagerStartCap (Capability *cap)
+{
+ return rts_evalIO(cap,&base_GHCziConc_ensureIOManagerIsRunning_closure,NULL);
+}
+
void
ioManagerStart (void)
{
@@ -142,7 +148,7 @@ ioManagerStart (void)
Capability *cap;
if (io_manager_pipe < 0) {
cap = rts_lock();
- cap = rts_evalIO(cap,&base_GHCziConc_ensureIOManagerIsRunning_closure,NULL);
+ cap = ioManagerStartCap(cap);
rts_unlock(cap);
}
}
diff --git a/rts/posix/Signals.h b/rts/posix/Signals.h
index 4d0a5a5fc7..b80f711b17 100644
--- a/rts/posix/Signals.h
+++ b/rts/posix/Signals.h
@@ -24,6 +24,8 @@ extern siginfo_t *next_pending_handler;
void startSignalHandlers(Capability *cap);
#endif
+Capability *ioManagerStartCap (Capability *cap);
+
extern StgInt *signal_handlers;
END_RTS_PRIVATE