ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.html
(Generate patch)

Comparing libev/ev.html (file contents):
Revision 1.61 by root, Thu Nov 29 12:21:21 2007 UTC vs.
Revision 1.63 by root, Thu Nov 29 20:05:59 2007 UTC

4<head> 4<head>
5 <title>libev</title> 5 <title>libev</title>
6 <meta name="description" content="Pod documentation for libev" /> 6 <meta name="description" content="Pod documentation for libev" />
7 <meta name="inputfile" content="&lt;standard input&gt;" /> 7 <meta name="inputfile" content="&lt;standard input&gt;" />
8 <meta name="outputfile" content="&lt;standard output&gt;" /> 8 <meta name="outputfile" content="&lt;standard output&gt;" />
9 <meta name="created" content="Thu Nov 29 13:21:20 2007" /> 9 <meta name="created" content="Thu Nov 29 21:05:58 2007" />
10 <meta name="generator" content="Pod::Xhtml 1.57" /> 10 <meta name="generator" content="Pod::Xhtml 1.57" />
11<link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head> 11<link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head>
12<body> 12<body>
13<div class="pod"> 13<div class="pod">
14<!-- INDEX START --> 14<!-- INDEX START -->
325or setgid) then libev will <i>not</i> look at the environment variable 325or setgid) then libev will <i>not</i> look at the environment variable
326<code>LIBEV_FLAGS</code>. Otherwise (the default), this environment variable will 326<code>LIBEV_FLAGS</code>. Otherwise (the default), this environment variable will
327override the flags completely if it is found in the environment. This is 327override the flags completely if it is found in the environment. This is
328useful to try out specific backends to test their performance, or to work 328useful to try out specific backends to test their performance, or to work
329around bugs.</p> 329around bugs.</p>
330 </dd>
331 <dt><code>EVFLAG_FORKCHECK</code></dt>
332 <dd>
333 <p>Instead of calling <code>ev_default_fork</code> or <code>ev_loop_fork</code> manually after
334a fork, you can also make libev check for a fork in each iteration by
335enabling this flag.</p>
336 <p>This works by calling <code>getpid ()</code> on every iteration of the loop,
337and thus this might slow down your event loop if you do a lot of loop
338iterations and little real work, but is usually not noticable (on my
339Linux system for example, <code>getpid</code> is actually a simple 5-insn sequence
340without a syscall and thus <i>very</i> fast, but my Linux system also has
341<code>pthread_atfork</code> which is even faster).</p>
342 <p>The big advantage of this flag is that you can forget about fork (and
343forget about forgetting to tell libev about forking) when you use this
344flag.</p>
345 <p>This flag setting cannot be overriden or specified in the <code>LIBEV_FLAGS</code>
346environment variable.</p>
330 </dd> 347 </dd>
331 <dt><code>EVBACKEND_SELECT</code> (value 1, portable select backend)</dt> 348 <dt><code>EVBACKEND_SELECT</code> (value 1, portable select backend)</dt>
332 <dd> 349 <dd>
333 <p>This is your standard select(2) backend. Not <i>completely</i> standard, as 350 <p>This is your standard select(2) backend. Not <i>completely</i> standard, as
334libev tries to roll its own fd_set with no limits on the number of fds, 351libev tries to roll its own fd_set with no limits on the number of fds,
1822 <dd> 1839 <dd>
1823 <p>Similar to the other two macros, this gives you the value of the default 1840 <p>Similar to the other two macros, this gives you the value of the default
1824loop, if multiple loops are supported (&quot;ev loop default&quot;).</p> 1841loop, if multiple loops are supported (&quot;ev loop default&quot;).</p>
1825 </dd> 1842 </dd>
1826</dl> 1843</dl>
1827<p>Example: Declare and initialise a check watcher, working regardless of 1844<p>Example: Declare and initialise a check watcher, utilising the above
1828wether multiple loops are supported or not.</p> 1845macros so it will work regardless of wether multiple loops are supported
1846or not.</p>
1829<pre> static void 1847<pre> static void
1830 check_cb (EV_P_ ev_timer *w, int revents) 1848 check_cb (EV_P_ ev_timer *w, int revents)
1831 { 1849 {
1832 ev_check_stop (EV_A_ w); 1850 ev_check_stop (EV_A_ w);
1833 } 1851 }
1834 1852
1835 ev_check check; 1853 ev_check check;
1836 ev_check_init (&amp;check, check_cb); 1854 ev_check_init (&amp;check, check_cb);
1837 ev_check_start (EV_DEFAULT_ &amp;check); 1855 ev_check_start (EV_DEFAULT_ &amp;check);
1838 ev_loop (EV_DEFAULT_ 0); 1856 ev_loop (EV_DEFAULT_ 0);
1839
1840
1841
1842 1857
1843</pre> 1858</pre>
1844 1859
1845</div> 1860</div>
1846<h1 id="EMBEDDING">EMBEDDING</h1> 1861<h1 id="EMBEDDING">EMBEDDING</h1>
1888 ev_vars.h 1903 ev_vars.h
1889 ev_wrap.h 1904 ev_wrap.h
1890 1905
1891 ev_win32.c required on win32 platforms only 1906 ev_win32.c required on win32 platforms only
1892 1907
1893 ev_select.c only when select backend is enabled (which is by default) 1908 ev_select.c only when select backend is enabled (which is enabled by default)
1894 ev_poll.c only when poll backend is enabled (disabled by default) 1909 ev_poll.c only when poll backend is enabled (disabled by default)
1895 ev_epoll.c only when the epoll backend is enabled (disabled by default) 1910 ev_epoll.c only when the epoll backend is enabled (disabled by default)
1896 ev_kqueue.c only when the kqueue backend is enabled (disabled by default) 1911 ev_kqueue.c only when the kqueue backend is enabled (disabled by default)
1897 ev_port.c only when the solaris port backend is enabled (disabled by default) 1912 ev_port.c only when the solaris port backend is enabled (disabled by default)
1898 1913
2140the <cite>libev/</cite> subdirectory and includes them in the <cite>EV/EVAPI.h</cite> (public 2155the <cite>libev/</cite> subdirectory and includes them in the <cite>EV/EVAPI.h</cite> (public
2141interface) and <cite>EV.xs</cite> (implementation) files. Only the <cite>EV.xs</cite> file 2156interface) and <cite>EV.xs</cite> (implementation) files. Only the <cite>EV.xs</cite> file
2142will be compiled. It is pretty complex because it provides its own header 2157will be compiled. It is pretty complex because it provides its own header
2143file.</p> 2158file.</p>
2144 <p>The usage in rxvt-unicode is simpler. It has a <cite>ev_cpp.h</cite> header file 2159 <p>The usage in rxvt-unicode is simpler. It has a <cite>ev_cpp.h</cite> header file
2145that everybody includes and which overrides some autoconf choices:</p> 2160that everybody includes and which overrides some configure choices:</p>
2161<pre> #define EV_MINIMAL 1
2146<pre> #define EV_USE_POLL 0 2162 #define EV_USE_POLL 0
2147 #define EV_MULTIPLICITY 0 2163 #define EV_MULTIPLICITY 0
2148 #define EV_PERIODICS 0 2164 #define EV_PERIODIC_ENABLE 0
2165 #define EV_STAT_ENABLE 0
2166 #define EV_FORK_ENABLE 0
2149 #define EV_CONFIG_H &lt;config.h&gt; 2167 #define EV_CONFIG_H &lt;config.h&gt;
2168 #define EV_MINPRI 0
2169 #define EV_MAXPRI 0
2150 2170
2151 #include &quot;ev++.h&quot; 2171 #include &quot;ev++.h&quot;
2152 2172
2153</pre> 2173</pre>
2154 <p>And a <cite>ev_cpp.C</cite> implementation file that contains libev proper and is compiled:</p> 2174 <p>And a <cite>ev_cpp.C</cite> implementation file that contains libev proper and is compiled:</p>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines