]> git.llucax.com Git - software/libev.git/commitdiff
*** empty log message ***
authorroot <root>
Wed, 12 Dec 2007 17:55:05 +0000 (17:55 +0000)
committerroot <root>
Wed, 12 Dec 2007 17:55:05 +0000 (17:55 +0000)
ev.3
ev.html
ev.pod

diff --git a/ev.3 b/ev.3
index 82d8e9bb7d704aad21be6d1bfd377aa0a517e5b8..d1a417acb5e0056001e7f11189a661683c24d991 100644 (file)
--- a/ev.3
+++ b/ev.3
@@ -1089,6 +1089,9 @@ descriptor even if the file descriptor number itself did not change.
 This is how one would do it normally anyway, the important point is that
 the libev application should not optimise around libev but should leave
 optimisations to libev.
 This is how one would do it normally anyway, the important point is that
 the libev application should not optimise around libev but should leave
 optimisations to libev.
+.PP
+\fIWatcher-Specific Functions\fR
+.IX Subsection "Watcher-Specific Functions"
 .IP "ev_io_init (ev_io *, callback, int fd, int events)" 4
 .IX Item "ev_io_init (ev_io *, callback, int fd, int events)"
 .PD 0
 .IP "ev_io_init (ev_io *, callback, int fd, int events)" 4
 .IX Item "ev_io_init (ev_io *, callback, int fd, int events)"
 .PD 0
@@ -1151,6 +1154,9 @@ on the current time, use something like this to adjust for this:
 The callback is guarenteed to be invoked only when its timeout has passed,
 but if multiple timers become ready during the same loop iteration then
 order of execution is undefined.
 The callback is guarenteed to be invoked only when its timeout has passed,
 but if multiple timers become ready during the same loop iteration then
 order of execution is undefined.
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)" 4
 .IX Item "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)"
 .PD 0
 .IP "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)" 4
 .IX Item "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)"
 .PD 0
@@ -1271,6 +1277,9 @@ rules.
 As with timers, the callback is guarenteed to be invoked only when the
 time (\f(CW\*(C`at\*(C'\fR) has been passed, but if multiple periodic timers become ready
 during the same loop iteration then order of execution is undefined.
 As with timers, the callback is guarenteed to be invoked only when the
 time (\f(CW\*(C`at\*(C'\fR) has been passed, but if multiple periodic timers become ready
 during the same loop iteration then order of execution is undefined.
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)" 4
 .IX Item "ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)"
 .PD 0
 .IP "ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)" 4
 .IX Item "ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)"
 .PD 0
@@ -1431,6 +1440,9 @@ with the kernel (thus it coexists with your own signal handlers as long
 as you don't register any with libev). Similarly, when the last signal
 watcher for a signal is stopped libev will reset the signal handler to
 \&\s-1SIG_DFL\s0 (regardless of what it was set to before).
 as you don't register any with libev). Similarly, when the last signal
 watcher for a signal is stopped libev will reset the signal handler to
 \&\s-1SIG_DFL\s0 (regardless of what it was set to before).
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_signal_init (ev_signal *, callback, int signum)" 4
 .IX Item "ev_signal_init (ev_signal *, callback, int signum)"
 .PD 0
 .IP "ev_signal_init (ev_signal *, callback, int signum)" 4
 .IX Item "ev_signal_init (ev_signal *, callback, int signum)"
 .PD 0
@@ -1447,6 +1459,9 @@ The signal the watcher watches out for.
 .IX Subsection "ev_child - watch out for process status changes"
 Child watchers trigger when your process receives a \s-1SIGCHLD\s0 in response to
 some child status changes (most typically when a child of yours dies).
 .IX Subsection "ev_child - watch out for process status changes"
 Child watchers trigger when your process receives a \s-1SIGCHLD\s0 in response to
 some child status changes (most typically when a child of yours dies).
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_child_init (ev_child *, callback, int pid)" 4
 .IX Item "ev_child_init (ev_child *, callback, int pid)"
 .PD 0
 .IP "ev_child_init (ev_child *, callback, int pid)" 4
 .IX Item "ev_child_init (ev_child *, callback, int pid)"
 .PD 0
@@ -1521,6 +1536,9 @@ semantics of \f(CW\*(C`ev_stat\*(C'\fR watchers, which means that libev sometime
 to fall back to regular polling again even with inotify, but changes are
 usually detected immediately, and if the file exists there will be no
 polling.
 to fall back to regular polling again even with inotify, but changes are
 usually detected immediately, and if the file exists there will be no
 polling.
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)" 4
 .IX Item "ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)"
 .PD 0
 .IP "ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)" 4
 .IX Item "ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)"
 .PD 0
@@ -1609,6 +1627,9 @@ Apart from keeping your process non-blocking (which is a useful
 effect on its own sometimes), idle watchers are a good place to do
 \&\*(L"pseudo\-background processing\*(R", or delay processing stuff to after the
 event loop has handled all outstanding events.
 effect on its own sometimes), idle watchers are a good place to do
 \&\*(L"pseudo\-background processing\*(R", or delay processing stuff to after the
 event loop has handled all outstanding events.
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_idle_init (ev_signal *, callback)" 4
 .IX Item "ev_idle_init (ev_signal *, callback)"
 Initialises and configures the idle watcher \- it has no parameters of any
 .IP "ev_idle_init (ev_signal *, callback)" 4
 .IX Item "ev_idle_init (ev_signal *, callback)"
 Initialises and configures the idle watcher \- it has no parameters of any
@@ -1683,6 +1704,9 @@ their job. As \f(CW\*(C`ev_check\*(C'\fR watchers are often used to embed other
 loops those other event loops might be in an unusable state until their
 \&\f(CW\*(C`ev_check\*(C'\fR watcher ran (always remind yourself to coexist peacefully with
 others).
 loops those other event loops might be in an unusable state until their
 \&\f(CW\*(C`ev_check\*(C'\fR watcher ran (always remind yourself to coexist peacefully with
 others).
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_prepare_init (ev_prepare *, callback)" 4
 .IX Item "ev_prepare_init (ev_prepare *, callback)"
 .PD 0
 .IP "ev_prepare_init (ev_prepare *, callback)" 4
 .IX Item "ev_prepare_init (ev_prepare *, callback)"
 .PD 0
@@ -1939,6 +1963,9 @@ create it, and if that fails, use the normal loop for everything:
 \&  else
 \&    loop_lo = loop_hi;
 .Ve
 \&  else
 \&    loop_lo = loop_hi;
 .Ve
+.PP
+\fIWatcher-Specific Functions and Data Members\fR
+.IX Subsection "Watcher-Specific Functions and Data Members"
 .IP "ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)" 4
 .IX Item "ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)"
 .PD 0
 .IP "ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)" 4
 .IX Item "ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)"
 .PD 0
diff --git a/ev.html b/ev.html
index 21f24d525a4c478deb6054dce3812f493be4975b..0299995080d1a4bf51562dbe0898618e58e26833 100644 (file)
--- a/ev.html
+++ b/ev.html
@@ -6,7 +6,7 @@
        <meta name="description" content="Pod documentation for libev" />
        <meta name="inputfile" content="&lt;standard input&gt;" />
        <meta name="outputfile" content="&lt;standard output&gt;" />
        <meta name="description" content="Pod documentation for libev" />
        <meta name="inputfile" content="&lt;standard input&gt;" />
        <meta name="outputfile" content="&lt;standard output&gt;" />
-       <meta name="created" content="Wed Dec 12 05:53:55 2007" />
+       <meta name="created" content="Wed Dec 12 18:55:04 2007" />
        <meta name="generator" content="Pod::Xhtml 1.57" />
 <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head>
 <body>
        <meta name="generator" content="Pod::Xhtml 1.57" />
 <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head>
 <body>
 <li><a href="#WATCHER_TYPES">WATCHER TYPES</a>
 <ul><li><a href="#code_ev_io_code_is_this_file_descrip"><code>ev_io</code> - is this file descriptor readable or writable?</a>
 <ul><li><a href="#The_special_problem_of_disappearing_">The special problem of disappearing file descriptors</a></li>
 <li><a href="#WATCHER_TYPES">WATCHER TYPES</a>
 <ul><li><a href="#code_ev_io_code_is_this_file_descrip"><code>ev_io</code> - is this file descriptor readable or writable?</a>
 <ul><li><a href="#The_special_problem_of_disappearing_">The special problem of disappearing file descriptors</a></li>
+<li><a href="#Watcher_Specific_Functions">Watcher-Specific Functions</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_timer_code_relative_and_opti"><code>ev_timer</code> - relative and optionally repeating timeouts</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_periodic_code_to_cron_or_not"><code>ev_periodic</code> - to cron or not to cron?</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-3">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_signal_code_signal_me_when_a"><code>ev_signal</code> - signal me when a signal gets signalled!</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-4">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_child_code_watch_out_for_pro"><code>ev_child</code> - watch out for process status changes</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-5">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_stat_code_did_the_file_attri"><code>ev_stat</code> - did the file attributes just change?</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-6">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_idle_code_when_you_ve_got_no"><code>ev_idle</code> - when you've got nothing better to do...</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-7">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_prepare_code_and_code_ev_che"><code>ev_prepare</code> and <code>ev_check</code> - customise your event loop!</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-8">Watcher-Specific Functions and Data Members</a></li>
+</ul>
+</li>
+<li><a href="#code_ev_embed_code_when_one_backend_"><code>ev_embed</code> - when one backend isn't enough...</a>
+<ul><li><a href="#Watcher_Specific_Functions_and_Data_-9">Watcher-Specific Functions and Data Members</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li><a href="#code_ev_timer_code_relative_and_opti"><code>ev_timer</code> - relative and optionally repeating timeouts</a></li>
-<li><a href="#code_ev_periodic_code_to_cron_or_not"><code>ev_periodic</code> - to cron or not to cron?</a></li>
-<li><a href="#code_ev_signal_code_signal_me_when_a"><code>ev_signal</code> - signal me when a signal gets signalled!</a></li>
-<li><a href="#code_ev_child_code_watch_out_for_pro"><code>ev_child</code> - watch out for process status changes</a></li>
-<li><a href="#code_ev_stat_code_did_the_file_attri"><code>ev_stat</code> - did the file attributes just change?</a></li>
-<li><a href="#code_ev_idle_code_when_you_ve_got_no"><code>ev_idle</code> - when you've got nothing better to do...</a></li>
-<li><a href="#code_ev_prepare_code_and_code_ev_che"><code>ev_prepare</code> and <code>ev_check</code> - customise your event loop!</a></li>
-<li><a href="#code_ev_embed_code_when_one_backend_"><code>ev_embed</code> - when one backend isn't enough...</a></li>
 <li><a href="#code_ev_fork_code_the_audacity_to_re"><code>ev_fork</code> - the audacity to resume the event loop after a fork</a></li>
 </ul>
 </li>
 <li><a href="#code_ev_fork_code_the_audacity_to_re"><code>ev_fork</code> - the audacity to resume the event loop after a fork</a></li>
 </ul>
 </li>
@@ -970,6 +995,10 @@ optimisations to libev.</p>
 
 
 
 
 
 
+
+</div>
+<h3 id="Watcher_Specific_Functions">Watcher-Specific Functions</h3>
+<div id="Watcher_Specific_Functions_CONTENT">
 <dl>
        <dt>ev_io_init (ev_io *, callback, int fd, int events)</dt>
        <dt>ev_io_set (ev_io *, int fd, int events)</dt>
 <dl>
        <dt>ev_io_init (ev_io *, callback, int fd, int events)</dt>
        <dt>ev_io_set (ev_io *, int fd, int events)</dt>
@@ -1030,6 +1059,10 @@ on the current time, use something like this to adjust for this:</p>
 <p>The callback is guarenteed to be invoked only when its timeout has passed,
 but if multiple timers become ready during the same loop iteration then
 order of execution is undefined.</p>
 <p>The callback is guarenteed to be invoked only when its timeout has passed,
 but if multiple timers become ready during the same loop iteration then
 order of execution is undefined.</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2">
 <dl>
        <dt>ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)</dt>
        <dt>ev_timer_set (ev_timer *, ev_tstamp after, ev_tstamp repeat)</dt>
 <dl>
        <dt>ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)</dt>
        <dt>ev_timer_set (ev_timer *, ev_tstamp after, ev_tstamp repeat)</dt>
@@ -1135,6 +1168,10 @@ rules.</p>
 <p>As with timers, the callback is guarenteed to be invoked only when the
 time (<code>at</code>) has been passed, but if multiple periodic timers become ready
 during the same loop iteration then order of execution is undefined.</p>
 <p>As with timers, the callback is guarenteed to be invoked only when the
 time (<code>at</code>) has been passed, but if multiple periodic timers become ready
 during the same loop iteration then order of execution is undefined.</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-3">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2">
 <dl>
        <dt>ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)</dt>
        <dt>ev_periodic_set (ev_periodic *, ev_tstamp after, ev_tstamp repeat, reschedule_cb)</dt>
 <dl>
        <dt>ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)</dt>
        <dt>ev_periodic_set (ev_periodic *, ev_tstamp after, ev_tstamp repeat, reschedule_cb)</dt>
@@ -1281,6 +1318,10 @@ with the kernel (thus it coexists with your own signal handlers as long
 as you don't register any with libev). Similarly, when the last signal
 watcher for a signal is stopped libev will reset the signal handler to
 SIG_DFL (regardless of what it was set to before).</p>
 as you don't register any with libev). Similarly, when the last signal
 watcher for a signal is stopped libev will reset the signal handler to
 SIG_DFL (regardless of what it was set to before).</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-4">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2-2">
 <dl>
        <dt>ev_signal_init (ev_signal *, callback, int signum)</dt>
        <dt>ev_signal_set (ev_signal *, int signum)</dt>
 <dl>
        <dt>ev_signal_init (ev_signal *, callback, int signum)</dt>
        <dt>ev_signal_set (ev_signal *, int signum)</dt>
@@ -1303,6 +1344,10 @@ of the <code>SIGxxx</code> constants).</p>
 <div id="code_ev_child_code_watch_out_for_pro-2">
 <p>Child watchers trigger when your process receives a SIGCHLD in response to
 some child status changes (most typically when a child of yours dies).</p>
 <div id="code_ev_child_code_watch_out_for_pro-2">
 <p>Child watchers trigger when your process receives a SIGCHLD in response to
 some child status changes (most typically when a child of yours dies).</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-5">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2-3">
 <dl>
        <dt>ev_child_init (ev_child *, callback, int pid)</dt>
        <dt>ev_child_set (ev_child *, int pid)</dt>
 <dl>
        <dt>ev_child_init (ev_child *, callback, int pid)</dt>
        <dt>ev_child_set (ev_child *, int pid)</dt>
@@ -1375,6 +1420,10 @@ semantics of <code>ev_stat</code> watchers, which means that libev sometimes nee
 to fall back to regular polling again even with inotify, but changes are
 usually detected immediately, and if the file exists there will be no
 polling.</p>
 to fall back to regular polling again even with inotify, but changes are
 usually detected immediately, and if the file exists there will be no
 polling.</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-6">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2-4">
 <dl>
        <dt>ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)</dt>
        <dt>ev_stat_set (ev_stat *, const char *path, ev_tstamp interval)</dt>
 <dl>
        <dt>ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)</dt>
        <dt>ev_stat_set (ev_stat *, const char *path, ev_tstamp interval)</dt>
@@ -1462,6 +1511,10 @@ active, the process will not block when waiting for new events.</p>
 effect on its own sometimes), idle watchers are a good place to do
 &quot;pseudo-background processing&quot;, or delay processing stuff to after the
 event loop has handled all outstanding events.</p>
 effect on its own sometimes), idle watchers are a good place to do
 &quot;pseudo-background processing&quot;, or delay processing stuff to after the
 event loop has handled all outstanding events.</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-7">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2-5">
 <dl>
        <dt>ev_idle_init (ev_signal *, callback)</dt>
        <dd>
 <dl>
        <dt>ev_idle_init (ev_signal *, callback)</dt>
        <dd>
@@ -1534,6 +1587,10 @@ their job. As <code>ev_check</code> watchers are often used to embed other event
 loops those other event loops might be in an unusable state until their
 <code>ev_check</code> watcher ran (always remind yourself to coexist peacefully with
 others).</p>
 loops those other event loops might be in an unusable state until their
 <code>ev_check</code> watcher ran (always remind yourself to coexist peacefully with
 others).</p>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-8">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2-6">
 <dl>
        <dt>ev_prepare_init (ev_prepare *, callback)</dt>
        <dt>ev_check_init (ev_check *, callback)</dt>
 <dl>
        <dt>ev_prepare_init (ev_prepare *, callback)</dt>
        <dt>ev_check_init (ev_check *, callback)</dt>
@@ -1735,6 +1792,10 @@ create it, and if that fails, use the normal loop for everything:</p>
     loop_lo = loop_hi;
 
 </pre>
     loop_lo = loop_hi;
 
 </pre>
+
+</div>
+<h3 id="Watcher_Specific_Functions_and_Data_-9">Watcher-Specific Functions and Data Members</h3>
+<div id="Watcher_Specific_Functions_and_Data_-2-7">
 <dl>
        <dt>ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)</dt>
        <dt>ev_embed_set (ev_embed *, callback, struct ev_loop *embedded_loop)</dt>
 <dl>
        <dt>ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)</dt>
        <dt>ev_embed_set (ev_embed *, callback, struct ev_loop *embedded_loop)</dt>
diff --git a/ev.pod b/ev.pod
index ab57ffbd559a2819c7d245ec80c9900ebb82d558..ee162ca1e6306e410cabc900a99392cccee8bb37 100644 (file)
--- a/ev.pod
+++ b/ev.pod
@@ -935,6 +935,8 @@ the libev application should not optimise around libev but should leave
 optimisations to libev.
 
 
 optimisations to libev.
 
 
+=head3 Watcher-Specific Functions
+
 =over 4
 
 =item ev_io_init (ev_io *, callback, int fd, int events)
 =over 4
 
 =item ev_io_init (ev_io *, callback, int fd, int events)
@@ -997,6 +999,8 @@ The callback is guarenteed to be invoked only when its timeout has passed,
 but if multiple timers become ready during the same loop iteration then
 order of execution is undefined.
 
 but if multiple timers become ready during the same loop iteration then
 order of execution is undefined.
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)
 =over 4
 
 =item ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)
@@ -1111,6 +1115,8 @@ As with timers, the callback is guarenteed to be invoked only when the
 time (C<at>) has been passed, but if multiple periodic timers become ready
 during the same loop iteration then order of execution is undefined.
 
 time (C<at>) has been passed, but if multiple periodic timers become ready
 during the same loop iteration then order of execution is undefined.
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)
 =over 4
 
 =item ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)
@@ -1266,6 +1272,8 @@ as you don't register any with libev). Similarly, when the last signal
 watcher for a signal is stopped libev will reset the signal handler to
 SIG_DFL (regardless of what it was set to before).
 
 watcher for a signal is stopped libev will reset the signal handler to
 SIG_DFL (regardless of what it was set to before).
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_signal_init (ev_signal *, callback, int signum)
 =over 4
 
 =item ev_signal_init (ev_signal *, callback, int signum)
@@ -1287,6 +1295,8 @@ The signal the watcher watches out for.
 Child watchers trigger when your process receives a SIGCHLD in response to
 some child status changes (most typically when a child of yours dies).
 
 Child watchers trigger when your process receives a SIGCHLD in response to
 some child status changes (most typically when a child of yours dies).
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_child_init (ev_child *, callback, int pid)
 =over 4
 
 =item ev_child_init (ev_child *, callback, int pid)
@@ -1364,6 +1374,8 @@ to fall back to regular polling again even with inotify, but changes are
 usually detected immediately, and if the file exists there will be no
 polling.
 
 usually detected immediately, and if the file exists there will be no
 polling.
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)
 =over 4
 
 =item ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)
@@ -1455,6 +1467,8 @@ effect on its own sometimes), idle watchers are a good place to do
 "pseudo-background processing", or delay processing stuff to after the
 event loop has handled all outstanding events.
 
 "pseudo-background processing", or delay processing stuff to after the
 event loop has handled all outstanding events.
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_idle_init (ev_signal *, callback)
 =over 4
 
 =item ev_idle_init (ev_signal *, callback)
@@ -1531,6 +1545,8 @@ loops those other event loops might be in an unusable state until their
 C<ev_check> watcher ran (always remind yourself to coexist peacefully with
 others).
 
 C<ev_check> watcher ran (always remind yourself to coexist peacefully with
 others).
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_prepare_init (ev_prepare *, callback)
 =over 4
 
 =item ev_prepare_init (ev_prepare *, callback)
@@ -1741,6 +1757,8 @@ create it, and if that fails, use the normal loop for everything:
   else
     loop_lo = loop_hi;
 
   else
     loop_lo = loop_hi;
 
+=head3 Watcher-Specific Functions and Data Members
+
 =over 4
 
 =item ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)
 =over 4
 
 =item ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)