/
Changes
132 lines (112 loc) · 5.66 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Revision history for Async-Event-Interval
1.13 UNREL
- 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.