diff --git a/core/box/pool_mid_inuse_deferred_env_box.h b/core/box/pool_mid_inuse_deferred_env_box.h new file mode 100644 index 00000000..a6d0d979 --- /dev/null +++ b/core/box/pool_mid_inuse_deferred_env_box.h @@ -0,0 +1,25 @@ +// pool_mid_inuse_deferred_env_box.h — Box: Deferred inuse_dec ENV gate +// HAKMEM_POOL_MID_INUSE_DEFERRED=1 (default 0) +// +// Purpose: ENV-based runtime toggle for deferred inuse_dec optimization +// Pattern: Static cached ENV check with __builtin_expect +// Phase: POOL-MID-DN-BATCH Step 1 + +#ifndef POOL_MID_INUSE_DEFERRED_ENV_BOX_H +#define POOL_MID_INUSE_DEFERRED_ENV_BOX_H + +#include + +// Check if deferred inuse_dec is enabled via ENV +// Default: 0 (disabled) for safety +// Set HAKMEM_POOL_MID_INUSE_DEFERRED=1 to enable +static inline int hak_pool_mid_inuse_deferred_enabled(void) { + static int g = -1; + if (__builtin_expect(g == -1, 0)) { + const char* e = getenv("HAKMEM_POOL_MID_INUSE_DEFERRED"); + g = (e && *e == '1') ? 1 : 0; + } + return g; +} + +#endif // POOL_MID_INUSE_DEFERRED_ENV_BOX_H