diff options
author | Ben Gamari <ben@smart-cactus.org> | 2023-04-28 12:33:20 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-05-15 18:02:20 -0400 |
commit | 37fb61d89d36719cbadde28ab2514e9eb804fa2e (patch) | |
tree | a0a15fc5f4c413beeae209ad9bac02469b769308 | |
parent | 73b1e87c76093c2e1de395472ffb3048cbf01e99 (diff) | |
download | haskell-37fb61d89d36719cbadde28ab2514e9eb804fa2e.tar.gz |
rts: Introduce printGlobalThreads
-rw-r--r-- | rts/Threads.c | 14 | ||||
-rw-r--r-- | rts/Threads.h | 1 |
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 |