summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorAlexander Vershilov <alexander.vershilov@gmail.com>2016-12-02 14:32:48 -0500
committerBen Gamari <ben@smart-cactus.org>2016-12-02 15:29:15 -0500
commit895a131f6e56847d9ebca2e9bfe19a3189e49d72 (patch)
tree0b54a54e22104ccf5b790a02448f6fb6875812a2 /includes
parentf46369b8a1bf90a3bdc30f2b566c3a7e03672518 (diff)
downloadhaskell-895a131f6e56847d9ebca2e9bfe19a3189e49d72.tar.gz
Install toplevel handler inside fork.
When rts is forked it doesn't update toplevel handler, so UserInterrupt exception is sent to Thread1 that doesn't exist in forked process. We install toplevel handler when fork so signal will be delivered to the new main thread. Fixes #12903 Reviewers: simonmar, austin, erikd, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2770 GHC Trac Issues: #12903
Diffstat (limited to 'includes')
-rw-r--r--includes/RtsAPI.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/includes/RtsAPI.h b/includes/RtsAPI.h
index 3b6e1dc117..4dccb84fd2 100644
--- a/includes/RtsAPI.h
+++ b/includes/RtsAPI.h
@@ -282,6 +282,10 @@ void rts_evalIO (/* inout */ Capability **,
/* in */ HaskellObj p,
/* out */ HaskellObj *ret);
+void rts_evalStableIOMain (/* inout */ Capability **,
+ /* in */ HsStablePtr s,
+ /* out */ HsStablePtr *ret);
+
void rts_evalStableIO (/* inout */ Capability **,
/* in */ HsStablePtr s,
/* out */ HsStablePtr *ret);