Skip to content

v1.16.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 13:07

libxtc (1.16.0-1) unstable; urgency=medium

  • Windows xtc_xproc: fixed a cross-thread deadlock in the exit-latch
    callback (it took the proc-table lock, an SRWLock, while the loop
    thread held it inside xtc_monitor). The callback now only nudges
    the loop via xtc_io_wakeup; the shadow proc observes the exit latch
    on the loop thread. The control channel reads on a dedicated OS
    thread. The end-to-end monitor is still gated behind a separate,
    ASan-confirmed Win32-fiber-substrate memory-safety bug (documented);
    POSIX xtc_xproc remains fully tested.
  • Portability layer (from the pg_threads.h review, ahead of the
    Windows os_thread port): split the rwlock unlock into
    __os_rwlock_rdunlock / _wrunlock (the Windows SRWLock has no
    mode-agnostic release); static lock initializers XTC_OS_MUTEX_INIT /
    XTC_OS_RWLOCK_INIT; __os_call_once / __os_once_t over pthread_once /
    InitOnceExecuteOnce; and __os_thread_atexit for cleanup on threads
    libxtc did not create (interop with host / carrier threads). New
    m1 tests, man pages, and docs; no DST applies (OS threading
    primitives are not sim-reachable).
  • Docs: correct the stale "CI not flipped to SUAR=1" caveat (flipped
    since v1.13.0); record plainly that Windows multi-core scalability
    is NOT claimed and is gated behind the Win32-fiber-substrate fix.
  • No change to the public xtc_* API from 1.15.0; the new _os*
    primitives are the internal L0 portability surface.

-- Greg Burd greg@burd.me Sun, 12 Jul 2026 08:55:09 -0400