diff options
-rw-r--r-- | HISTORY.rst | 2 | ||||
-rw-r--r-- | psutil/arch/netbsd/proc.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/HISTORY.rst b/HISTORY.rst index d214e61f..324961bc 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -37,6 +37,8 @@ - 2231_, [NetBSD]: *available* `virtual_memory()`_ is higher than *total*. - 2234_, [NetBSD]: `virtual_memory()`_ metrics are wrong: *available* and *used* are too high. We now match values shown by *htop* CLI utility. +- 2236_, [NetBSD]: `Process.num_threads()`_ and `Process.threads()`_ return + threads that are already terminated. 5.9.4 ===== diff --git a/psutil/arch/netbsd/proc.c b/psutil/arch/netbsd/proc.c index b87473a6..e71afb38 100644 --- a/psutil/arch/netbsd/proc.c +++ b/psutil/arch/netbsd/proc.c @@ -247,6 +247,10 @@ psutil_proc_threads(PyObject *self, PyObject *args) { nlwps = (int)(size / sizeof(struct kinfo_lwp)); for (i = 0; i < nlwps; i++) { + if ((&kl[i])->l_stat == LSIDL || (&kl[i])->l_stat == LSZOMB) + continue; + // XXX: we return 2 "user" times because the struct does not provide + // any "system" time. py_tuple = Py_BuildValue("idd", (&kl[i])->l_lid, PSUTIL_KPT2DOUBLE((&kl[i])->l_rtime), |