From b8a6d0a1cdb927ceb25d93577181a0c69594f782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ko=CC=88hler?= Date: Sat, 22 Mar 2025 23:49:00 +0100 Subject: [PATCH] Timer::memory_size() implementation for macOS --- src/tl/tl/tlTimer.cc | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/tl/tl/tlTimer.cc b/src/tl/tl/tlTimer.cc index f77efd009..c7cb1b11c 100644 --- a/src/tl/tl/tlTimer.cc +++ b/src/tl/tl/tlTimer.cc @@ -33,6 +33,7 @@ # include # include # include +# include #else # include # include @@ -206,8 +207,19 @@ Timer::memory_size () return mem; -#else +#elif defined(__APPLE__) + pid_t pid = getpid(); + struct proc_taskinfo taskinfo; + if (proc_pidinfo(pid, PROC_PIDTASKINFO, 0, &taskinfo, sizeof(taskinfo)) <= 0) { + perror("proc_pidinfo failed"); + return 0; + } + + return taskinfo.pti_resident_size; + +#elif defined(__linux__) + unsigned long memsize = 0; FILE *procfile = fopen ("/proc/self/stat", "r"); if (procfile != NULL) { @@ -258,9 +270,10 @@ Timer::memory_size () memsize = 0; } } - return size_t (memsize); +#else +# error Unsupported platform #endif }