rontolisp:mutex-release
(rontolisp:mutex-release mutex)
Releases one acquisition of mutex and returns it. Releasing a mutex the calling thread
does not hold is an error on the interpreter and the JVM backend (and unnoticed on WASM,
where the primitives are no-ops). Because the lock is reentrant, a thread that acquired it
twice must release it twice before another thread can take it.
rontolisp:with-mutex pairs the acquire and the
release for you, including on a non-local exit; reach for the bare primitives only when the
two cannot sit in one lexical block.
Limitations
- A value that is not a mutex handle is an error.
- On the WASM backends nothing is checked: releasing an unheld lock is silently accepted.