Revision history for Async-Event-Interval
1.13 2024-03-04
-
Added ability to send in per-callback call parameters via the start()
method (closes #10)
-
Add prereq of Test::SharedFork to keep tests in order in t/46
-
Bumped prereq version of IPC::Shareable to 1.13
1.12 2022-03-31
-
Only remove the Async::Event::Interval protected shared %events hash
if it contains any keys (ie. event objects). When running in things
like 'plackup', END{} was being called on each browser session close,
but there were still objects, so we were trashing the %events
infrastructure prematurely
-
Each unit test file now does pre-and-post segment counts and displays
them if PRINT_SEGS env var is true, and the suite itself has a before
and after count comparison to ensure the suite leaked no segments or
semaphores
-
Fix issue where we were trying to set a _pid() on an undefined value,
causing IPC::Shareable to complain that "Can't STORE on undef val"
1.11 2022-03-09
-
Modified tests to run only on valid CI platforms
1.10 2022-03-07
-
Add tests to ensure that all shared memory segments created during the
unit test suite run get cleaned up ok
-
Bump prereq of IPC::Shareable to 1.11 due to bug fix where child shared
memory segments created under one process weren't being registered if the
parent was created in a different process
1.09 2022-03-05
-
Bump prereq IPC::Shareable to 1.08 due to a fix in creating random SHM
keys in forked environments, major improvements of its _shm_key_rand()
function, and its ability to set a 'protected' option so our global shared
%events hash doesn't get cleaned up automatically
-
Modified examples/shared.pl so it doesn't leak segments and semaphores
after completion
-
We now remove %events hash in END instead of DESTROY. This way we can have
objects go out of scope in a script without blowing away the global shared
data
-
Added _end() so that we can test the END block in unit tests. END{} calls
_end() upon program termination
1.08 2022-03-03
-
Added pid(), getter-only wrapper for _pid()
-
Added example of using shared data with IPC::Shareable
1.07 2022-03-03
-
interval() no longer requires stop/start of event to take effect
-
Re-arranged initialization routine to allow for the above
-
Interval is now stored in the %events shared hash so that the event can
access it directly
1.06 2022-03-03
-
Class level hash that contains information about all existing events
now lives in shared memory so we can track operation informtion from
within the events themselves
-
Added runs() method, tracks the number of callback executions of an
event
-
Added errors() method, tracks the number of times a callback fails
-
Added error_message() method, stores the most recent error message
from the callback if an error has been logged
-
Modified _shm_rand_key() to return a 12-char ALPHA string
-
Updated tests to ensure they destroy any shared memory segments they
create
1.05 2022-03-01
-
We now wait interval time before executing the event for the first time
-
Added error(), returns error status instead of using status() == -1
-
status() no longer sets -1. We now use error() for that
1.04 2021-05-11
-
Fix issue in t/45-params.t where done_testing() may have been called
multiple times (fixes #5)
-
Fix issue where _rand_shm_key() could generate non-unique shared memory
segment keys (fixes #4)
1.03 2021-05-05
-
Added events() class function, returns hash reference details of each
event that's been created
-
Added id() object method; returns the ID of the event
-
Added info() object method; returns an href of details about the event
-
Added shared_scalar() object method; Returns a reference to a scalar
that resides in shared memory. We use IPC::Shareable for the backend
-
Fixed issue where fractional seconds weren't being honoured
-
POD updates, including a new SYNOPSIS
-
Added accessor methods for most object attributes
1.02 2021-04-15
-
Updated shared data example to be a scalar
-
Update t/10-shared.t as it was failing under MacOS/FreeBSD
1.01 2021-04-14
-
If interval is set to zero, we'll run only once
-
Added IPC::Shareable as prerequisite
-
Added waiting(), checks to see if an event is ready to start/restart
1.00 2018-01-23
-
modified t/15-interval.t with some timing changes to prevent CPAN
Testers failures
-
added t/45-params.t to cover cases where we send in parameters to the
event
-
added an EXAMPLE to display how to send in params to the event
callback
0.05 2017-10-20
-
POD fix (indenting examples)
-
bump copyright to 2017
0.04 2017-10-19
-
added examples/shared.pl, shared variable between all events and
the parent
-
major overhaul on PID handling which provided the ability to rework
status() to be much more reliable (and effective)
-
we now set $SIG{CHLD}="IGNORE" to avoid defunct processes
-
added Carp (croak) for all fatal errors
-
status() now returns -1 if an event has crashed, providing the user
with the ability to restart the event, or take other action
-
added examples/timeout.pl and examples/event_crash.pl
0.03 2016-10-16
-
removed restart(), and aliased it instead to start()
-
fixed issue in an already-running warn on start(), and added status()
to check the running status of an event (closes #1)
0.02 2016-09-24
-
POD fixes
0.01 Date/time
-
First version, released on an unsuspecting world.