summaryrefslogtreecommitdiff
path: root/ev.pod
diff options
context:
space:
mode:
authorroot <root>2010-10-24 19:38:20 +0000
committerroot <root>2010-10-24 19:38:20 +0000
commit58ef9d93fb27fd25038961a92993e81cc0bba455 (patch)
treeeb8ec457452728effb72f34b5a41992c8c764611 /ev.pod
parent8a1a04e426d7c5d6cf85f306dac741efee055607 (diff)
*** empty log message ***
Diffstat (limited to 'ev.pod')
-rw-r--r--ev.pod39
1 files changed, 39 insertions, 0 deletions
diff --git a/ev.pod b/ev.pod
index 749f082..87bd72d 100644
--- a/ev.pod
+++ b/ev.pod
@@ -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