Revision history for Data::Stack::Shared

0.07  2026-07-22
    - Fix push/pop hanging on a slot abandoned by a killed peer.
    - Fix the reclaim path in pop() skipping the push_wait wake: a pusher
      blocked on a full stack stayed asleep forever after a pop reclaimed
      the abandoned slot instead of producing a value.
    - Fetch get-magic on optional arguments before testing them.

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-06-01
    - create: reject capacity > 2^31-1 (matches validate_header), so it can
      no longer silently truncate the uint32 capacity / fail on reopen
    - Str pop/pop_wait/peek: free temp buffer via SAVEFREEPV (leak if
      newSVpvn croaked on OOM)

0.04  2026-05-26
    - drain: bounded recovery (~2s) for slots stuck WRITING after a crashed pusher
    - slot publish is now CAS-only — prevents a stalled-but-live pusher from
      clobbering a slot drain force-recovered to EMPTY

0.03  2026-04-26
    - MPMC per-slot state machine + file format v2
    - strict fd validation; drain() test coverage
    - stk drain: CAS-loop -> atomic exchange
    - idempotent eventfd; aarch64 CI matrix


0.02  2026-04-12
    - Add drain() — concurrency-safe alternative to clear()

0.01  2026-04-11
    - Initial release
