summaryrefslogtreecommitdiff
path: root/rts/posix
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2017-10-16 15:28:02 -0400
committerBen Gamari <ben@smart-cactus.org>2017-10-16 17:24:49 -0400
commit7e790b38c205da67681f632b00faf7a0ea33510d (patch)
treec23e0efca6d007dc2120d951a291e45bf08c7fa8 /rts/posix
parent5dab54428229a8d4f1658c4ad94f616b211851fe (diff)
downloadhaskell-7e790b38c205da67681f632b00faf7a0ea33510d.tar.gz
rts: Label all threads created by the RTS
Reviewers: austin, erikd, simonmar Reviewed By: simonmar Subscribers: pacak, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4068
Diffstat (limited to 'rts/posix')
-rw-r--r--rts/posix/Signals.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/rts/posix/Signals.c b/rts/posix/Signals.c
index e75f99def8..cf45019d95 100644
--- a/rts/posix/Signals.c
+++ b/rts/posix/Signals.c
@@ -16,6 +16,7 @@
#include "Prelude.h"
#include "Ticker.h"
#include "Stable.h"
+#include "ThreadLabels.h"
#include "Libdw.h"
#if defined(alpha_HOST_ARCH)
@@ -471,14 +472,16 @@ startSignalHandlers(Capability *cap)
// freed by runHandler
memcpy(info, next_pending_handler, sizeof(siginfo_t));
- scheduleThread(cap,
+ StgTSO *t =
createIOThread(cap,
- RtsFlags.GcFlags.initialStkSize,
- rts_apply(cap,
- rts_apply(cap,
- &base_GHCziConcziSignal_runHandlersPtr_closure,
- rts_mkPtr(cap, info)),
- rts_mkInt(cap, info->si_signo))));
+ RtsFlags.GcFlags.initialStkSize,
+ rts_apply(cap,
+ rts_apply(cap,
+ &base_GHCziConcziSignal_runHandlersPtr_closure,
+ rts_mkPtr(cap, info)),
+ rts_mkInt(cap, info->si_signo)));
+ scheduleThread(cap, t);
+ labelThread(cap, t, "signal handler thread");
}
unblockUserSignals();