MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / check_pressure

Function check_pressure

src/foundation/vmem.c:61–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59#define MB_DIVISOR ((size_t)(CBM_SZ_1K * CBM_SZ_1K))
60
61static void check_pressure(size_t allocated) {
62 if (g_budget == 0) {
63 return;
64 }
65
66 bool over = allocated > g_budget;
67 int was = atomic_load(&g_was_over);
68
69 if (over && !was) {
70 /* Transition: under → over */
71 atomic_store(&g_was_over, 1);
72 char alloc_mb[CBM_SZ_32];
73 char budget_mb[CBM_SZ_32];
74 char pct_str[CBM_SZ_16];
75 snprintf(alloc_mb, sizeof(alloc_mb), "%zu", allocated / MB_DIVISOR);
76 snprintf(budget_mb, sizeof(budget_mb), "%zu", g_budget / MB_DIVISOR);
77 snprintf(pct_str, sizeof(pct_str), "%zu",
78 g_budget > 0 ? (allocated * CBM_PERCENT) / g_budget : 0);
79 cbm_log_warn("mem.pressure.warn", "allocated_mb", alloc_mb, "budget_mb", budget_mb, "pct",
80 pct_str);
81 } else if (!over && was) {
82 /* Transition: over → under */
83 atomic_store(&g_was_over, 0);
84 char alloc_mb[CBM_SZ_32];
85 char budget_mb[CBM_SZ_32];
86 char pct_str[CBM_SZ_16];
87 snprintf(alloc_mb, sizeof(alloc_mb), "%zu", allocated / MB_DIVISOR);
88 snprintf(budget_mb, sizeof(budget_mb), "%zu", g_budget / MB_DIVISOR);
89 snprintf(pct_str, sizeof(pct_str), "%zu",
90 g_budget > 0 ? (allocated * CBM_PERCENT) / g_budget : 0);
91 cbm_log_info("mem.pressure.ok", "allocated_mb", alloc_mb, "budget_mb", budget_mb, "pct",
92 pct_str);
93 }
94}
95
96/* ── Update peak ───────────────────────────────────────────────── */
97

Callers 2

cbm_vmem_allocFunction · 0.70
cbm_vmem_freeFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected