Revision history for Data-Sync-Shared

0.10      2026-09-26
          - A create that fails at mmap no longer leaves a full-size file
            behind.
          - Checking a file left by an interrupted create no longer allocates
            its pages on tmpfs.
          - Error messages no longer lose their reason to a long path.

0.09      2026-09-15
          - Recover a lock left ownerless by a corrupt file instead of hanging.
          - Fix an RWLock writer stall on ARM64 after readers release.

0.08      2026-08-12
          - A file left by an interrupted create is recovered, not refused.
          - Hardening against tied and overloaded arguments.
          - unlink() reports a failed removal; a missing file is no error.

0.07      2026-07-22
          - A guard inherited by a forked child no longer releases the
            parent's RWLock, Condvar or Semaphore at exit.
          - On-disk format change (v2 -> v3): recreate 0.06 files.
          - acquire_n above the maximum croaks instead of blocking forever.

0.06  2026-07-03
    - Security and robustness hardening; backing files now created mode
      0600 (pass a file-mode argument to new() for cross-user sharing).

0.05  2026-05-26
    - RWLock dead-reader recovery: SIGKILL'd reader no longer pins the
      counter; 1024-slot per-process mirror drains dead contributions on
      wrlock timeout
    - SYNC_VERSION 1 -> 2 (RWLock files only); existing maps must be recreated

0.04  2026-04-26
    - RWLock write-preferring + writers waiting split
    - Barrier broken-on-timeout + is broken()
    - sync() croaks; harden DESTROY
    - sync sem drain: CAS-loop -> atomic exchange
    - idempotent eventfd; aarch64 CI matrix


0.03  2026-04-13
    - Add SEE ALSO cross-links to all family modules

0.02  2026-04-12
    - Fix eventfd_set self-assignment fd guard
    - Add SEE ALSO cross-links to family modules


0.01  2026-04-11
    - Initial release: futex-based Semaphore, Barrier, RWLock, Condvar and
      Once in shared memory.
    - File-backed, anonymous and memfd modes; PID-based stale recovery;
      eventfd integration.
    - Scope guards, and timeouts on all blocking operations.
