# kern 1.1.2

> Pool-mode liveness, cooperative Mutex, mbedTLS ABI fix. Patch release.

Source: https://kern-lang.eu/releases/1.1.2

Pool-mode liveness, cooperative Mutex, mbedTLS ABI fix

Patch release2,087 tests

## Release notes

### Pool-mode liveness

Routine sleep and the connection-gate FIFO timeout now take the libuv park only on the pump owner (or when no live owner exists); a pool worker blocks on `poll(2)` instead of registering on a loop it does not pump, removing a lost wakeup and loop-heap corruption under `KERN_WORKERS=4/8`.

### Cooperative Mutex\<T>

A held lock could freeze the scheduler thread. `kern_mutex_lock` was a bare `pthread_mutex_lock`; a routine descheduled while holding it deadlocked the thread. Mutex now parks a contending routine, reusing the waiter path WaitGroup, Semaphore and Channel already use.

### mbedTLS ABI fix

The v1.1.1 Linux x86\_64 bundle was built against mbedTLS 3.6 (`libmbedtls.so.21`); on a mbedTLS-2.28 host (Ubuntu 22.04/24.04, Debian bookworm) TLS SIGSEGVd. The release now publishes two Linux x86\_64 bundles, one per mbedTLS ABI.

### Build-time ABI gate (E0504)

When a prebuilt runtime bundle is used, the compiler reads the bundle MANIFEST's `mbedtls_soname` and the host's soname and refuses the link on a mismatch.

### Async trace

Dev-only `KERN_ASYNC_TRACE=1` diagnostic: on `SIGUSR1` the runtime writes every live routine id, state, park reason and fd.

### By the numbers

2,087 tests (1,535 conformance + 85 compat + 467 negative). TCB 42,441\. 12 fuzz targets (8 C libFuzzer + 4 Kern-language).

Install

`$ curl -fsSL https://kern-lang.eu/install.sh | sh`

Upgrade with the same install command. Releases are signed.

[Get started ](https://kern-lang.eu/get-started)
