diff options
Diffstat (limited to 'rts')
-rw-r--r-- | rts/Sparks.c | 3 | ||||
-rw-r--r-- | rts/Weak.c | 3 | ||||
-rw-r--r-- | rts/posix/Signals.c | 17 | ||||
-rw-r--r-- | rts/win32/ConsoleHandler.c | 14 |
4 files changed, 23 insertions, 14 deletions
diff --git a/rts/Sparks.c b/rts/Sparks.c index ecd3c38a17..a31a5dfbe5 100644 --- a/rts/Sparks.c +++ b/rts/Sparks.c @@ -14,6 +14,7 @@ #include "Trace.h" #include "Prelude.h" #include "Sparks.h" +#include "ThreadLabels.h" #include "sm/HeapAlloc.h" #if defined(THREADED_RTS) @@ -43,7 +44,7 @@ createSparkThread (Capability *cap) tso = createIOThread (cap, RtsFlags.GcFlags.initialStkSize, (StgClosure *)runSparks_closure); - + labelThread(cap, tso, "spark evaluator"); traceEventCreateSparkThread(cap, tso->id); appendToRunQueue(cap,tso); diff --git a/rts/Weak.c b/rts/Weak.c index f3e91fb31b..577d1cd7d8 100644 --- a/rts/Weak.c +++ b/rts/Weak.c @@ -14,6 +14,7 @@ #include "Weak.h" #include "Schedule.h" #include "Prelude.h" +#include "ThreadLabels.h" #include "Trace.h" void @@ -151,5 +152,7 @@ scheduleFinalizers(Capability *cap, StgWeak *list) rts_mkInt(cap,n)), (StgClosure *)arr) ); + scheduleThread(cap,t); + labelThread(cap, t, "weak finalizer thread"); } 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(); diff --git a/rts/win32/ConsoleHandler.c b/rts/win32/ConsoleHandler.c index 3d283b0162..88c4a61912 100644 --- a/rts/win32/ConsoleHandler.c +++ b/rts/win32/ConsoleHandler.c @@ -183,13 +183,15 @@ void startSignalHandlers(Capability *cap) handler = deRefStablePtr((StgStablePtr)console_handler); while (stg_pending_events > 0) { stg_pending_events--; - scheduleThread(cap, + StgTSO *t = createIOThread(cap, - RtsFlags.GcFlags.initialStkSize, - rts_apply(cap, - (StgClosure *)handler, - rts_mkInt(cap, - stg_pending_buf[stg_pending_events])))); + RtsFlags.GcFlags.initialStkSize, + rts_apply(cap, + (StgClosure *)handler, + rts_mkInt(cap, + stg_pending_buf[stg_pending_events]))); + scheduleThread(cap, t); + labelThread(cap, t, "signal handler thread"); } RELEASE_LOCK(&sched_mutex); |