Revision history for Data-Queue-Shared

0.07      2026-07-21
          - 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
    - Str push_multi: hoist SvPV out of the mutex so a tied/overloaded
      argument that dies mid-batch can't abandon the lock and deadlock peers

0.04  2026-05-27
    - *_wait: fix missed-wakeup race (announce waiter before sampling seq)
    - batch ops (push_multi/pop_multi/drain) wake N waiters, not 1
    - pop_multi caps requested count at capacity (bound malloc, avoid
      size_t overflow on adversarial input)
    - eventfd_set no longer closes caller-supplied fds


0.03  2026-04-26
    - create: init under flock; mutex recovery wakes 1
    - queue str clear wakes all producers/consumers
    - eventfd consume returns accumulated count
    - harden DESTROY; factor MAKE OBJ macro
    - hoist SV construction out of pop multi/drain mutex
    - stat recoveries uint64 t; aarch64 CI matrix


0.02  2026-04-12
    - Add SEE ALSO cross-links to family modules


0.01  2026-04-05
    - Initial release
    - Int queue: lock-free Vyukov bounded MPMC
    - Str queue: futex-mutex with circular arena, deque ops (push_front, pop_back)
    - Backing: file-backed mmap, anonymous (MAP_ANONYMOUS), memfd
    - Blocking push/pop with timeout via futex
    - Batch ops under single mutex (push_multi, pop_multi, drain)
    - eventfd integration (opt-in notify)
    - PID-based stale lock recovery
    - peek, sync, stats with waiter counts
