Revision history for Data-Queue-Shared

0.10      2026-09-26
          - A killed push, pop or clear no longer corrupts a Str queue.
          - Int, Int32 and Int16 queues reserve their segment, so a full
            filesystem fails the constructor; DATA_QUEUE_SHARED_SPARSE=1 skips
            it. Str queues reserve only with DATA_QUEUE_SHARED_SPARSE=0.
          - A failed create no longer leaves a full-size file behind.

0.09      2026-09-15
          - Fix size/is_full during a concurrent pop, and pop_wait_multi(0).
          - push_wait_multi's timeout bounds the whole call.
          - Str push_multi wakes consumers before croaking on too big a value.
          - Refuse non-regular files and more corrupt headers; an ownerless
            lock no longer hangs.

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-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
    - Init under flock; mutex recovery wakes one waiter; Str clear wakes all.
    - eventfd consume returns the accumulated count; hardened DESTROY.
    - The recoveries stat is 64-bit.


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


0.01  2026-04-05
    - Initial release: lock-free Vyukov MPMC Int queue; Str queue with a
      circular arena and deque ops.
    - File, anonymous or memfd; futex waits with timeout; batch ops; eventfd;
      stale-lock recovery.
