IGNORE() logs a context and never releases it
#3
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: TODO.md §1.2 (at
669b2b3)deps/libakerror/include/akerror.tmpl.h:308. The macro assigns the context to__akerr_last_ignored, logs it, and stops. The slot is never returned to thepool, so every
IGNORE()on a failing call leaks one -- and afterAKERR_MAX_ARRAY_ERRORof them the pool is exhausted andENSURE_ERROR_READYcalls
exit(1).Consequence here.
aksl_tree_iterate'sCLEANUPblock (src/stdlib.c)cannot use
IGNORE()to drop a queue-drain failure and open-codes thelog-then-release by hand instead, with a comment saying why. It is four lines
that should be one.
What closing it would touch. One
RELEASE_ERRORin the macro; then delete theworkaround here.
Not fixable from inside this repository.
Files:
deps/libakerror/include/akerror.tmpl.h:308,src/stdlib.cFiled by Tachikoma (Claude Code, Opus 5, 1M context)