From a944c422cca5522073e03710ca7fd08f53218358 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Wed, 15 Oct 2025 03:35:42 -0300 Subject: [PATCH] darwin: better heuristic for available memory (#4908) Fixes: https://github.com/libuv/libuv/issues/3897 --- src/unix/darwin.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/unix/darwin.c b/src/unix/darwin.c index 009efbefa..98ddf2728 100644 --- a/src/unix/darwin.c +++ b/src/unix/darwin.c @@ -126,7 +126,15 @@ uint64_t uv_get_constrained_memory(void) { uint64_t uv_get_available_memory(void) { - return uv_get_free_memory(); + vm_statistics_data_t info; + mach_msg_type_number_t count = sizeof(info) / sizeof(integer_t); + + if (host_statistics(mach_host_self(), HOST_VM_INFO, + (host_info_t)&info, &count) != KERN_SUCCESS) { + return 0; + } + + return ((uint64_t) info.free_count + (uint64_t) info.inactive_count + (uint64_t) info.purgeable_count) * sysconf(_SC_PAGESIZE); }