ENV Cleanup Phase 5: Additional DEBUG guards + doc cleanup
Code changes: - core/slab_handle.h: Add RELEASE guard for HAKMEM_TINY_FREELIST_MASK - core/tiny_superslab_free.inc.h: Add guards for HAKMEM_TINY_ROUTE_FREE, HAKMEM_TINY_FREELIST_MASK Documentation cleanup: - docs/specs/CONFIGURATION.md: Remove 21 doc-only ENV variables - docs/specs/ENV_VARS.md: Remove doc-only variables Testing: - Build: PASS (305KB binary, unchanged) - Sanity: PASS (17.22M ops/s average, 3 runs) - Larson: PASS (52.12M ops/s, 0 crashes) Impact: - 2 additional DEBUG ENV variables guarded (no overhead in RELEASE) - Documentation accuracy improved - Binary size maintained 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -260,10 +260,14 @@ static inline int slab_freelist_push(SlabHandle* h, void* ptr) {
|
||||
// Optional freelist mask update (opt-in via env HAKMEM_TINY_FREELIST_MASK)
|
||||
do {
|
||||
static int g_mask_en = -1;
|
||||
#if HAKMEM_BUILD_RELEASE
|
||||
g_mask_en = 0;
|
||||
#else
|
||||
if (__builtin_expect(g_mask_en == -1, 0)) {
|
||||
const char* e = getenv("HAKMEM_TINY_FREELIST_MASK");
|
||||
g_mask_en = (e && *e && *e != '0') ? 1 : 0;
|
||||
}
|
||||
#endif
|
||||
if (__builtin_expect(g_mask_en, 0) && prev == NULL && h->ss) {
|
||||
uint32_t bit = (1u << h->slab_idx);
|
||||
atomic_fetch_or_explicit(&h->ss->freelist_mask, bit, memory_order_release);
|
||||
@ -310,10 +314,14 @@ static inline void* slab_freelist_pop(SlabHandle* h) {
|
||||
// Optional freelist mask clear when freelist becomes empty
|
||||
do {
|
||||
static int g_mask_en2 = -1;
|
||||
#if HAKMEM_BUILD_RELEASE
|
||||
g_mask_en2 = 0;
|
||||
#else
|
||||
if (__builtin_expect(g_mask_en2 == -1, 0)) {
|
||||
const char* e = getenv("HAKMEM_TINY_FREELIST_MASK");
|
||||
g_mask_en2 = (e && *e && *e != '0') ? 1 : 0;
|
||||
}
|
||||
#endif
|
||||
if (__builtin_expect(g_mask_en2, 0) && next == NULL && h->ss) {
|
||||
uint32_t bit = (1u << h->slab_idx);
|
||||
atomic_fetch_and_explicit(&h->ss->freelist_mask, ~bit, memory_order_release);
|
||||
|
||||
Reference in New Issue
Block a user