获取所有正在运行的线程的列表或计数

jbe*_*man 9 hook haskell runtime ghc

我该如何执行以下操作之一?

  • ThreadID从应用程序代码中获取所有正在运行的分叉线程(最好带有标签)的列表?
  • 获取一个简单的(可能是近似值;例如从上次主要 GC 中),正在运行的线程数
  • gdb或类似处获得上述任何一项

对我不起作用的事情:

  • 需要分析构建
  • 维护一些数据结构以尝试自己跟踪此信息

我认为可能有希望的事情:

小智 3

GHC 9.6推出 listThreads :: IO [ThreadId]

\n

来自GHC 用户\xe2\x80\x99s 指南

\n
\n

GHC 现在提供了一组用于对程序线程进行内省的操作 GHC.Conc.listThreads,以及用于查询线程\xe2\x80\x99s 标签 (GHC.Conc.threadLabel) 和状态 (GHC.Conc) 的操作.threadStatus)。

\n
\n