From 4f592ed011d0678c459b166c854b9e9247cd1b26 Mon Sep 17 00:00:00 2001 From: netblue30 Date: Thu, 2 Jun 2022 09:29:04 -0400 Subject: speed up firemon --- src/lib/pid.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/lib') diff --git a/src/lib/pid.c b/src/lib/pid.c index 3cf0df909..2cc72bce0 100644 --- a/src/lib/pid.c +++ b/src/lib/pid.c @@ -303,6 +303,7 @@ void pid_store_cpu(unsigned index, unsigned parent, unsigned *utime, unsigned *s // mon_pid: pid of sandbox to be monitored, 0 if all sandboxes are included void pid_read(pid_t mon_pid) { + unsigned old_max_pids = max_pids; FILE *fp = fopen("/proc/sys/kernel/pid_max", "r"); if (fp) { int val; @@ -314,12 +315,13 @@ void pid_read(pid_t mon_pid) { } if (pids == NULL) { + old_max_pids = max_pids; pids = malloc(sizeof(Process) * max_pids); if (pids == NULL) errExit("malloc"); } - memset(pids, 0, sizeof(Process) * max_pids); + memset(pids, 0, sizeof(Process) * old_max_pids); pid_t mypid = getpid(); DIR *dir; @@ -424,7 +426,7 @@ void pid_read(pid_t mon_pid) { closedir(dir); // update max_pid - max_pids = new_max_pids; + max_pids = new_max_pids + 1; pid_t pid; for (pid = 0; pid < max_pids; pid++) { -- cgit v1.2.3-54-g00ecf