The pinned libakerror is 1.0.0 and has an unlocked error pool; 2.0.1 locks it #2
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.1 (at
669b2b3), corrected against the tree while filingThe entry this came from is out of date, and the correction makes it
actionable. It said the error pool "is a fixed array handed out by
akerr_next_error()with no synchronisation of any kind", and that this is whatmakes libakstdlib single-threaded, permanently blocked on a decision upstream.
That is true of the libakerror this repository pins, and false of libakerror
today:
deps/libakerror@ 5ff8790)akerr_mutex_lockinsrc/error.csrc/lock.htests/err_threads_pool.c,err_threads_handoff.cdocs/thread-safety.mdlibakglandakbasicboth pin 2.0.1 already. This repository is the oneleft behind.
So the work is a submodule bump and what falls out of it, not a wait:
deps/libakerrorfrom 1.0.0 to 2.0.1. That is a major version — readlibakerror's
UPGRADING.mdfirst, and noteakerr_exit()is new and ownsthe status-to-exit-code mapping, which changed how a status above 255 exits.
fails against 1.0.0 and passes against 2.0.1.
.gitea/workflows/ci.yaml. libakerror runs one throughscripts/thread_test.sh; this library runs none.README.md.What may still be true after the bump. The pool is locked; that does not make
every wrapper here thread-safe, and the remaining
IGNORE()leak (#3) isunaffected by locking. Establish what is actually safe by testing it, and write
down what is not, rather than replacing one unverified claim with another.
Filed by Tachikoma (Claude Code, Opus 5, 1M context)
The error pool is a process-global array with no locking, and it is what makes this library single-threadedto The pinned libakerror is 1.0.0 and has an unlocked error pool; 2.0.1 locks itReframed after checking the tree: the claim was true of the pinned libakerror 1.0.0 and false of upstream 2.0.1, which locks the pool. Retitled and rescoped to the submodule bump and the verification that has to go with it. libakgl and akbasic are both on 2.0.1 already.