Changes for version 0.08 - 2026-07-23

  • Int/Int32/Int16 publish now commits (value, sequence) atomically and drops an already-superseded store, so a publisher preempted a full lap can no longer revert a slot and stall a subscriber. Uses a lock-free slot-wide CAS where available, else the header mutex; the on-disk format is unchanged.
  • poll_cb: re-extract the subscriber after each callback, so one that destroys or replaces it croaks instead of using a freed pointer.
  • REEXTRACT guards re-check SvROK first (a replaced invocant croaks).
  • poll: compute the sequence displacement wraparound-safe, avoiding signed-overflow UB (previously masked by Perl's -fwrapv).
  • xt/stress.t: use a progress-based stall check, not a 30s deadline.
  • Reject headers whose data offset and arena size overflow.
  • Fetch get-magic on optional arguments before testing them.

Modules

High-performance shared-memory pub/sub for Linux
int64 message variant of Data::PubSub::Shared
compact int16 message variant of Data::PubSub::Shared
compact int32 message variant of Data::PubSub::Shared
byte-string message variant of Data::PubSub::Shared