Revision history for Data::Stack::Shared
0.09 2026-09-26
- Segments are reserved, so a full filesystem fails the constructor;
DATA_STACK_SHARED_SPARSE=1 skips the reservation.
- A failed create no longer leaves a full-size file behind.
- Checking a half-created file no longer allocates it on tmpfs.
- Long paths no longer cut the reason from error messages.
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-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
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)