summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2023-04-28 12:33:20 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-05-15 18:02:20 -0400
commit37fb61d89d36719cbadde28ab2514e9eb804fa2e (patch)
treea0a15fc5f4c413beeae209ad9bac02469b769308
parent73b1e87c76093c2e1de395472ffb3048cbf01e99 (diff)
downloadhaskell-37fb61d89d36719cbadde28ab2514e9eb804fa2e.tar.gz
rts: Introduce printGlobalThreads
-rw-r--r--rts/Threads.c14
-rw-r--r--rts/Threads.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/rts/Threads.c b/rts/Threads.c
index b36b4ddb81..ff57e5e3f0 100644
--- a/rts/Threads.c
+++ b/rts/Threads.c
@@ -1007,6 +1007,20 @@ printAllThreads(void)
}
}
+void
+printGlobalThreads(void)
+{
+ for (uint32_t g = 0; g < RtsFlags.GcFlags.generations; g++) {
+ debugBelch("\ngen %d\n", g);
+ for (StgTSO *t = generations[g].threads; t != END_TSO_QUEUE; t = t->global_link) {
+ debugBelch("thread %p (id=%lu)\n", t, t->id);
+ }
+ for (StgTSO *t = generations[g].old_threads; t != END_TSO_QUEUE; t = t->global_link) {
+ debugBelch("thread %p (id=%lu) (old)\n", t, t->id);
+ }
+ }
+}
+
// useful from gdb
void
printThreadQueue(StgTSO *t)
diff --git a/rts/Threads.h b/rts/Threads.h
index c0a9f1cf1c..b74ac1381d 100644
--- a/rts/Threads.h
+++ b/rts/Threads.h
@@ -46,6 +46,7 @@ bool performTryPutMVar(Capability *cap, StgMVar *mvar, StgClosure *value);
void printThreadBlockage (StgTSO *tso);
void printThreadStatus (StgTSO *t);
void printAllThreads (void);
+void printGlobalThreads(void);
void printThreadQueue (StgTSO *t);
#endif