Correct the error-pool entry: the pin is 1.0.0, upstream locks it
The largest item in the file said the error pool has no synchronisation of any kind and that libakstdlib is therefore permanently single-threaded pending a decision upstream. That is true of deps/libakerror as pinned -- 1.0.0, zero occurrences of akerr_mutex_lock, no lock.h, no thread tests -- and false of libakerror 2.0.1, which holds one recursive lock over the pool and the status registry and ships docs/thread-safety.md. libakgl and akbasic both pin 2.0.1 already. Issue #2 is retitled and rescoped to the submodule bump and the concurrent test that has to prove it, rather than a wait on somebody else. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
10
TODO.md
10
TODO.md
@@ -27,15 +27,15 @@ The six confirmed defects that used to head this file are fixed and
|
||||
`AKSL_KNOWN_FAILING_TESTS` is empty. What they were, and what changed as a result,
|
||||
is in `UPGRADING.md`.
|
||||
|
||||
## The four items blocked upstream
|
||||
## What libakerror costs this library
|
||||
|
||||
Not fixable from inside this repository, and each currently costs something here.
|
||||
Filed both here and against libakerror, because the fix is there and the bill is
|
||||
here:
|
||||
Three of these are not fixable from inside this repository, and each costs
|
||||
something here. They are filed in both places, because the fix is there and the
|
||||
bill is here. The fourth turned out not to be blocked at all:
|
||||
|
||||
| Here | Upstream | What it costs |
|
||||
|---|---|---|
|
||||
| #2 | libakerror | The unlocked error pool, **which is what makes this library single-threaded**. The threading and socket wrappers cannot be written until it is resolved |
|
||||
| #2 | — | **Corrected while filing.** The unlocked error pool is a property of the libakerror this repository *pins* (1.0.0), not of libakerror (2.0.1, which locks it). `libakgl` and `akbasic` are both on 2.0.1. The work is a submodule bump and the verification that goes with it, not a wait |
|
||||
| #3 | libakerror | `IGNORE()` leaks a context, so `aksl_tree_iterate` open-codes log-then-release in four lines that should be one |
|
||||
| #4 | libakerror | The `coverage` target is not namespaced when embedded, so `-DAKSL_COVERAGE=ON` fails to configure and `CMakeLists.txt` shadows `add_custom_target` to work around it |
|
||||
| #5 | libakerror | No `akerrorConfigVersion.cmake`, so `find_dependency(akerror)` cannot ask for the 1.0.0 floor |
|
||||
|
||||
Reference in New Issue
Block a user