41 const uint64_t now_ms = NowMs();
42 const uint64_t last_ms = g_last_trim_ms.load(std::memory_order_relaxed);
45 if (!force && now_ms - last_ms < kMinTrimIntervalMs)
49 bool expected =
false;
50 if (!g_trim_in_progress.compare_exchange_strong(expected,
true, std::memory_order_acq_rel))
53 bool did_trim =
false;
63#elif defined(__APPLE__)
65 malloc_zone_t* zone = malloc_default_zone();
66 malloc_zone_pressure_relief(zone, 0);
74 g_last_trim_ms.store(now_ms, std::memory_order_relaxed);
76 g_trim_in_progress.store(
false, std::memory_order_release);