Claude-skill-registry patterns/arena-allocator
Arena Allocator Pattern (C-Specific) pattern for C development
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/arena-allocator" ~/.claude/skills/majiayu000-claude-skill-registry-patterns-arena-allocator && rm -rf "$T"
manifest:
skills/data/arena-allocator/SKILL.mdsource content
Arena Allocator Pattern (C-Specific)
Allocate many objects from single memory region, free all at once. No individual frees. Hierarchical arenas enable nested lifetimes.
ikigai Application
talloc: ikigai uses talloc for hierarchical arenas:
TALLOC_CTX *request_ctx = talloc_new(parent); // All allocations are children char *str = talloc_strdup(request_ctx, "hello"); ik_msg_t *msg = talloc(request_ctx, ik_msg_t); // Single free cleans everything talloc_free(request_ctx);
Ownership hierarchy:
root_ctx └─> repl_ctx └─> scrollback (freed with repl) └─> messages[] (freed with repl)
Benefits: No memory leaks by design. No use-after-free. Clear ownership. Fast bulk deallocation.
See:
project/memory.md for talloc patterns.