Changes for version 0.07 - 2026-07-22

  • Fix guards releasing a lock from the wrong process: a forked child inheriting an RWLock, Condvar or Semaphore guard released the PARENT lock at exit, breaking mutual exclusion. Each guard now records the acquiring PID and releases only from it.
  • On-disk format change (v2 -> v3): an existing 0.06 file is refused; recreate it.
  • Give the Guard packages a $VERSION so PAUSE indexes them.
  • Reject acquire_n above the maximum instead of blocking forever.

Modules

Shared-memory synchronization primitives for Linux
N-process rendezvous point
condition variable with built-in mutex
one-time initialization gate
reader-writer lock
CAS-based counting semaphore

Provides

in lib/Data/Sync/Shared.pm
in lib/Data/Sync/Shared.pm
in lib/Data/Sync/Shared.pm