Deleted Added
full compact
26c26
< * $FreeBSD: stable/9/usr.bin/procstat/procstat_sigs.c 221807 2011-05-12 10:11:39Z stas $
---
> * $FreeBSD: stable/9/usr.bin/procstat/procstat_sigs.c 250871 2013-05-21 19:05:27Z trociny $
89c89
< procstat_threads_sigs(struct procstat *prstat __unused, struct kinfo_proc *kipp)
---
> procstat_threads_sigs(struct procstat *procstat, struct kinfo_proc *kipp)
93,95c93,94
< int error, name[4], j;
< unsigned int i;
< size_t len;
---
> int j;
> unsigned int count, i;
102,119c101,102
< /*
< * We need to re-query for thread information, so don't use *kipp.
< */
< name[0] = CTL_KERN;
< name[1] = KERN_PROC;
< name[2] = KERN_PROC_PID | KERN_PROC_INC_THREAD;
< name[3] = pid;
<
< len = 0;
< error = sysctl(name, 4, NULL, &len, NULL, 0);
< if (error < 0 && errno != ESRCH) {
< warn("sysctl: kern.proc.pid: %d", pid);
< return;
< }
< if (error < 0)
< return;
<
< kip = malloc(len);
---
> kip = procstat_getprocs(procstat, KERN_PROC_PID | KERN_PROC_INC_THREAD,
> pid, &count);
121,125d103
< err(-1, "malloc");
<
< if (sysctl(name, 4, kip, &len, NULL, 0) < 0) {
< warn("sysctl: kern.proc.pid: %d", pid);
< free(kip);
127,130c105,106
< }
<
< kinfo_proc_sort(kip, len / sizeof(*kipp));
< for (i = 0; i < len / sizeof(*kipp); i++) {
---
> kinfo_proc_sort(kip, count);
> for (i = 0; i < count; i++) {
143c119
< free(kip);
---
> procstat_freeprocs(procstat, kip);