IPC-Manager
view release on metacpan or search on metacpan
- Support arbitrarily long peer names: DBI drivers widen ipcm_peers.id and ipcm_messages to/from from VARCHAR(36) to VARCHAR(512); FS drivers hash overlong/unsafe ids to "h-" + 40 hex sha256 with .name sidecar; UnixSocket sizes threshold to sun_p...
0.000027 2026-04-19 09:58:22-07:00 America/Los_Angeles
0.000026 2026-04-19 08:36:18-07:00 America/Los_Angeles
- Split Client::SharedMem into its own CPAN dist (IPC-Manager-Client-SharedMem); module, tests, SysV probe, Makefile.PL/dist.ini shims no longer ship here
0.000025 2026-04-19 06:33:45-07:00 America/Los_Angeles
- Add optional $timeout to Service::Peer::ready, Service::Handle::ready, Client::peer_active; polls via IO::Select on peer-change fd (inotify) or 0.05s sleep-retry, replacing 0.025s busy-wait in Service::State
0.000024 2026-04-18 14:57:47-07:00 America/Los_Angeles
- Fix sync_request hang when peer disappears mid-request: await_response snapshots peer at send time and croaks on full unregistration; suspend_supported protocols still wait across clean suspend / restart-under-new-pid
- Add optional $timeout to sync_request and await_response (croak on deadline; unchanged when omitted)
- Sweep orphaned Atomic::Pipe reassembly state via new Client peer_left() hook called from service loop on peer-delta removal
0.000023 2026-04-17 12:06:27-07:00 America/Los_Angeles
- Strengthen SysV IPC configure probe: concurrent-contention and rapid create/destroy phases catch hosts where semop sporadically returns EINVAL under load
lib/IPC/Manager/Client.pm view on Meta::CPAN
With no C<$timeout> (or C<undef>), returns the current state immediately.
With C<$timeout> in seconds, blocks until the peer becomes active or the
timeout elapses, whichever comes first. A C<$timeout> of C<0> blocks
indefinitely.
When the protocol exposes a peer-change descriptor
(C<have_handles_for_peer_change>), C<peer_active> waits on it via
C<IO::Select>. Otherwise it falls back to a 0.05-second sleep-and-retry
loop, avoiding a tight busy-loop in either case.
=item $bool = $con->peer_exists($peer_name)
Check if the specified peer exists, even if it is suspended.
=item $pid = $con->peer_pid($peer_name)
Get the pid of a peer, undef if it does not exist or is not running.
=item @peer_names = $con->peers()
( run in 1.004 second using v1.01-cache-2.11-cpan-5a3173703d6 )