Revision history for Data::Pool::Shared
0.10 2026-09-26
- recover_stale frees slots of processes killed mid alloc or free.
- New file format: recreate files from 0.09 or earlier.
- Segments are reserved, so a full filesystem fails the constructor;
DATA_POOL_SHARED_SPARSE=1 skips the reservation.
- A failed create no longer leaves a full-size file behind.
0.09 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.08 2026-07-22
- Fix a use-after-free in Raw/Str set() when the value's magic
destroys the pool; it now croaks.
- Reject crafted headers whose layout overflows 64 bits.
- A guard no longer frees the parent's slot from a forked child.
- alloc_n rejects counts above 2^32; Guard has a $VERSION.
0.07 2026-07-03
- Security and robustness hardening; backing files now created mode
0600 (pass a file-mode argument to new() for cross-user sharing).
- new() on an existing backing file now requires a matching capacity and
elem_size, croaking on a mismatch (previously the requested geometry
was silently ignored).
0.06 2026-06-30
- scan_from($slot): pin the per-handle allocation scan start for deterministic,
sequential id order (overrides the getpid()-derived spread default). Purely
additive; inherited by all typed variants.
0.05 2026-06-01
- alloc_n/free_n: free temp buffer via SAVEFREEPV (leak on OOM-croak)
0.04 2026-05-26
- recover_stale: owner re-check around bitmap CAS + saturating-sub on used
(fixes ABA race where a freshly allocated slot was incorrectly freed)
- pool_alloc: compare against hdr->capacity directly (fixes truncation
for capacity > UINT32_MAX)
0.03 2026-04-26
- -Duselongdouble test fix (RT#176378)
- fd validation hardening
- stat recoveries uint64 t
- idempotent eventfd; aarch64 CI matrix
0.02 2026-04-13
- Add SEE ALSO cross-links to all family modules
- Fix eventfd_set self-assignment guard
- Add capacity*elem_size overflow check
0.01 2026-04-11
- Initial release: fixed-size object pool (Raw, I64, F64, I32, Str) with
CAS bitmap allocation.
- Futex-blocking alloc, recover_stale, alloc_n/free_n, zero-copy slot_sv,
guards.
- File, anonymous or memfd backing; eventfd wakeup; atomic ops on I64/I32.
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)