-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
51 lines (51 loc) · 4.79 KB
/
CHANGELOG
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
SimpleEvent.pm:
==============
0.1: first public version
0.1a: fix remaining signal handlers not detected when main loop is stopped
add debug messages
0.1b: support timers callback removing other timers when using internal event model (AnyEvent event model manages this correctly already)
remove non-repeating timers before calling the callbacks (this allows the callback to re-add a timer with same name)
0.1c: fix forkCall not working properly when returned data are bigger than output buffers
0.2: add function to close all non-system file descriptors (can be useful when the close-on-exec flag is missing)
add function to create a new detached/daemon process
0.3: fix race condition in socket handlers management when using internal event model
0.4: fix forkCall failing to retrieve call result when the fork request is queued
fix forkCall failing to retrieve call result when the forked process runs for more than the half-closed socket system timeout
fix forkCall failing to retrieve call result when the forked process exits before returned data have been received by the parent process
0.5: timers now properly support subsecond delay and intervals
fix buggy console when event loop is stopped while a forked process is still running (Windows)
0.6: the forkProcess, forkCall and createWin32Process functions now also return a handle in addition to the PID
add removeProcessCallback function to allow removing the process callbacks added with the forkProcess, forkCall and createWin32Process functions
split the process reaping code from the process callback handling code to make the SIGCHLD signal handler safer (Linux)
fix handle conflicts in forked processes: internal module data is now flushed at start in forked processes
fix handle conflicts in Win32 processes: user handles inheritance is now disabled during Win32 process creation (Windows)
add support for cmd.exe style redirections when creating Win32 processes (Windows)
the event loop for the internal event model no longer waits for the end of the loop to check if it must be stopped (make the event loop stop faster)
prevent using AnyEvent with the EV library on Windows system to avoid crashes (Windows)
print time slice value in initialization message
add accessors to internal data volumetry indicators
fix some errors generating empty line after log message
add debug messages when unqueuing processes
0.7: registered sockets are now automatically closed by default when forking to avoid I/O race conditions
new functions: addAutoCloseOnFork/removeAutoCloseOnFork to manage a list of additional handles automatically closed by default when forking
the forkProcess and forkCall functions now take an additional parameter to specify a list of handles which should be kept open when forking
added workaround for IO::Socket::SSL module misbehaving when forking
improved workaround for Win32::Process module not being thread-safe (Windows)
fixed getNbRunningProcesses function not taking into account the number of Win32 processes (Windows)
0.8: add function implementing both synchronous and asynchronous graceful socket shutdown
minor optimization in non-blocking socket read
0.9: enhance callback management to store the origin package of each callback, which makes it possible to remove all the callbacks of a given package automatically
allow declaring "proxy" classes for callback management, which are ignored when traversing the call stack to find the origin package
0.10: added workaround for Inline::Python module not being thread safe and prevent Python code from calling fork functions on Windows
wrap non-code reference callbacks to keep origin information
fix sockets registered using file descriptors generating Perl warnings and not being auto-closed on forks
support registering/unregistering sockets from non-GLOB objects as long as they implement the "fileno" function (Linux)
all sub-packages of proxy packages are now also considered as being proxy packages
0.11: add support for asynchronous file lock requests
0.12: added workaround for AnyEvent::TLS module not being thread safe
0.13: added workaround for EV module not being thread safe (it is now possible to use libev on Windows)
0.14: add forked process callback functionality (callback executed at start of all forked processes)
new function "win32HdlDisableInheritance": prevent handle from being automatically inherited by subprocesses (Windows)
sockets registered with "registerSocket" are no longer automatically inherited by subprocesses (Windows)
0.15: lock file handles retrieved with "requestFileLock" are no longer automatically inherited by subprocesses (Windows)
0.16: internal sockets created automatically for IPC when forkCall is called are no longer inherited by subprocesses (Windows)