From bc22bee6505a4953d20eed96899d929e769a7baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Tue, 20 Sep 2022 21:40:02 +0200 Subject: Darwin: increase buffer size each retry Increase the buffer for the current running processes each retry to handle very busy systems. Closes: #118 --- darwin/DarwinProcessList.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'darwin') diff --git a/darwin/DarwinProcessList.c b/darwin/DarwinProcessList.c index bd7821b8..dae588ba 100644 --- a/darwin/DarwinProcessList.c +++ b/darwin/DarwinProcessList.c @@ -68,12 +68,13 @@ static struct kinfo_proc* ProcessList_getKInfoProcs(size_t* count) { int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 }; struct kinfo_proc* processes = NULL; - for (int retry = 3; retry > 0; retry--) { + for (unsigned int retry = 0; retry < 4; retry++) { size_t size = 0; if (sysctl(mib, 4, NULL, &size, NULL, 0) < 0 || size == 0) { CRT_fatalError("Unable to get size of kproc_infos"); } + size += 16 * retry * retry * sizeof(struct kinfo_proc); processes = xRealloc(processes, size); if (sysctl(mib, 4, processes, &size, NULL, 0) == 0) { -- cgit v1.2.3