|
|
|
@ -1114,6 +1114,10 @@ The embedded event loop specified in the C<ev_embed> watcher needs attention.
|
|
|
|
|
The event loop has been resumed in the child process after fork (see
|
|
|
|
|
C<ev_fork>).
|
|
|
|
|
|
|
|
|
|
=item C<EV_CLEANUP>
|
|
|
|
|
|
|
|
|
|
The event loop is abotu to be destroyed (see C<ev_cleanup>).
|
|
|
|
|
|
|
|
|
|
=item C<EV_ASYNC>
|
|
|
|
|
|
|
|
|
|
The given async watcher has been asynchronously notified (see C<ev_async>).
|
|
|
|
@ -3101,6 +3105,41 @@ believe me.
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head2 C<ev_cleanup> - even the best things end
|
|
|
|
|
|
|
|
|
|
Cleanup watchers are called just before the event loop they are registered
|
|
|
|
|
with is being destroyed.
|
|
|
|
|
|
|
|
|
|
While there is no guarantee that the event loop gets destroyed, cleanup
|
|
|
|
|
watchers provide a convenient method to install cleanup watchers for your
|
|
|
|
|
program, worker threads and so on - you just to make sure to destroy the
|
|
|
|
|
loop when you want them to be invoked.
|
|
|
|
|
|
|
|
|
|
=head3 Watcher-Specific Functions and Data Members
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item ev_cleanup_init (ev_signal *, callback)
|
|
|
|
|
|
|
|
|
|
Initialises and configures the cleanup watcher - it has no parameters of
|
|
|
|
|
any kind. There is a C<ev_cleanup_set> macro, but using it is utterly
|
|
|
|
|
pointless, believe me.
|
|
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
|
|
Example: Register an atexit handler to destroy the default loop, so any
|
|
|
|
|
cleanup functions are called.
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
program_exits (void)
|
|
|
|
|
{
|
|
|
|
|
ev_loop_destroy (EV_DEFAULT_UC);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
atexit (program_exits);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=head2 C<ev_async> - how to wake up an event loop
|
|
|
|
|
|
|
|
|
|
In general, you cannot use an C<ev_run> from multiple threads or other
|
|
|
|
|