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

Comparing libev/ev.3 (file contents):
Revision 1.114 by root, Tue Jun 25 06:36:59 2019 UTC vs.
Revision 1.116 by root, Sun Jul 7 06:00:32 2019 UTC

131.\} 131.\}
132.rm #[ #] #H #V #F C 132.rm #[ #] #H #V #F C
133.\" ======================================================================== 133.\" ========================================================================
134.\" 134.\"
135.IX Title "LIBEV 3" 135.IX Title "LIBEV 3"
136.TH LIBEV 3 "2019-06-25" "libev-4.25" "libev - high performance full featured event loop" 136.TH LIBEV 3 "2019-07-07" "libev-4.27" "libev - high performance full featured event loop"
137.\" For nroff, turn off justification. Always turn off hyphenation; it makes 137.\" For nroff, turn off justification. Always turn off hyphenation; it makes
138.\" way too many mistakes in technical documents. 138.\" way too many mistakes in technical documents.
139.if n .ad l 139.if n .ad l
140.nh 140.nh
141.SH "NAME" 141.SH "NAME"
291When libev detects a usage error such as a negative timer interval, then 291When libev detects a usage error such as a negative timer interval, then
292it will print a diagnostic message and abort (via the \f(CW\*(C`assert\*(C'\fR mechanism, 292it will print a diagnostic message and abort (via the \f(CW\*(C`assert\*(C'\fR mechanism,
293so \f(CW\*(C`NDEBUG\*(C'\fR will disable this checking): these are programming errors in 293so \f(CW\*(C`NDEBUG\*(C'\fR will disable this checking): these are programming errors in
294the libev caller and need to be fixed there. 294the libev caller and need to be fixed there.
295.PP 295.PP
296Via the \f(CW\*(C`EV_FREQUENT\*(C'\fR macro you can compile in and/or enable extensive
297consistency checking code inside libev that can be used to check for
298internal inconsistencies, suually caused by application bugs.
299.PP
296Libev also has a few internal error-checking \f(CW\*(C`assert\*(C'\fRions, and also has 300Libev also has a few internal error-checking \f(CW\*(C`assert\*(C'\fRions. These do not
297extensive consistency checking code. These do not trigger under normal
298circumstances, as they indicate either a bug in libev or worse. 301trigger under normal circumstances, as they indicate either a bug in libev
302or worse.
299.SH "GLOBAL FUNCTIONS" 303.SH "GLOBAL FUNCTIONS"
300.IX Header "GLOBAL FUNCTIONS" 304.IX Header "GLOBAL FUNCTIONS"
301These functions can be called anytime, even before initialising the 305These functions can be called anytime, even before initialising the
302library in any way. 306library in any way.
303.IP "ev_tstamp ev_time ()" 4 307.IP "ev_tstamp ev_time ()" 4
1867reuse the same code path. 1871reuse the same code path.
1868.PP 1872.PP
1869\fIThe special problem of fork\fR 1873\fIThe special problem of fork\fR
1870.IX Subsection "The special problem of fork" 1874.IX Subsection "The special problem of fork"
1871.PP 1875.PP
1872Some backends (epoll, kqueue, probably linuxaio) do not support \f(CW\*(C`fork ()\*(C'\fR 1876Some backends (epoll, kqueue, linuxaio, iouring) do not support \f(CW\*(C`fork ()\*(C'\fR
1873at all or exhibit useless behaviour. Libev fully supports fork, but needs 1877at all or exhibit useless behaviour. Libev fully supports fork, but needs
1874to be told about it in the child if you want to continue to use it in the 1878to be told about it in the child if you want to continue to use it in the
1875child. 1879child.
1876.PP 1880.PP
1877To support fork in your child processes, you have to call \f(CW\*(C`ev_loop_fork 1881To support fork in your child processes, you have to call \f(CW\*(C`ev_loop_fork
4620\& 4624\&
4621\& ev_select.c only when select backend is enabled 4625\& ev_select.c only when select backend is enabled
4622\& ev_poll.c only when poll backend is enabled 4626\& ev_poll.c only when poll backend is enabled
4623\& ev_epoll.c only when the epoll backend is enabled 4627\& ev_epoll.c only when the epoll backend is enabled
4624\& ev_linuxaio.c only when the linux aio backend is enabled 4628\& ev_linuxaio.c only when the linux aio backend is enabled
4629\& ev_iouring.c only when the linux io_uring backend is enabled
4625\& ev_kqueue.c only when the kqueue backend is enabled 4630\& ev_kqueue.c only when the kqueue backend is enabled
4626\& ev_port.c only when the solaris port backend is enabled 4631\& ev_port.c only when the solaris port backend is enabled
4627.Ve 4632.Ve
4628.PP 4633.PP
4629\&\fIev.c\fR includes the backend files directly when enabled, so you only need 4634\&\fIev.c\fR includes the backend files directly when enabled, so you only need
4812otherwise another method will be used as fallback. This is the preferred 4817otherwise another method will be used as fallback. This is the preferred
4813backend for GNU/Linux systems. If undefined, it will be enabled if the 4818backend for GNU/Linux systems. If undefined, it will be enabled if the
4814headers indicate GNU/Linux + Glibc 2.4 or newer, otherwise disabled. 4819headers indicate GNU/Linux + Glibc 2.4 or newer, otherwise disabled.
4815.IP "\s-1EV_USE_LINUXAIO\s0" 4 4820.IP "\s-1EV_USE_LINUXAIO\s0" 4
4816.IX Item "EV_USE_LINUXAIO" 4821.IX Item "EV_USE_LINUXAIO"
4822If defined to be \f(CW1\fR, libev will compile in support for the Linux aio
4823backend (\f(CW\*(C`EV_USE_EPOLL\*(C'\fR must also be enabled). If undefined, it will be
4824enabled on linux, otherwise disabled.
4825.IP "\s-1EV_USE_IOURING\s0" 4
4826.IX Item "EV_USE_IOURING"
4817If defined to be \f(CW1\fR, libev will compile in support for the Linux 4827If defined to be \f(CW1\fR, libev will compile in support for the Linux
4818aio backend. Due to it's currenbt limitations it has to be requested 4828io_uring backend (\f(CW\*(C`EV_USE_EPOLL\*(C'\fR must also be enabled). Due to it's
4819explicitly. If undefined, it will be enabled on linux, otherwise 4829current limitations it has to be requested explicitly. If undefined, it
4820disabled. 4830will be enabled on linux, otherwise disabled.
4821.IP "\s-1EV_USE_KQUEUE\s0" 4 4831.IP "\s-1EV_USE_KQUEUE\s0" 4
4822.IX Item "EV_USE_KQUEUE" 4832.IX Item "EV_USE_KQUEUE"
4823If defined to be \f(CW1\fR, libev will compile in support for the \s-1BSD\s0 style 4833If defined to be \f(CW1\fR, libev will compile in support for the \s-1BSD\s0 style
4824\&\f(CW\*(C`kqueue\*(C'\fR(2) backend. Its actual availability will be detected at runtime, 4834\&\f(CW\*(C`kqueue\*(C'\fR(2) backend. Its actual availability will be detected at runtime,
4825otherwise another method will be used as fallback. This is the preferred 4835otherwise another method will be used as fallback. This is the preferred
5081in. If set to \f(CW1\fR, then verification code will be compiled in, but not 5091in. If set to \f(CW1\fR, then verification code will be compiled in, but not
5082called. If set to \f(CW2\fR, then the internal verification code will be 5092called. If set to \f(CW2\fR, then the internal verification code will be
5083called once per loop, which can slow down libev. If set to \f(CW3\fR, then the 5093called once per loop, which can slow down libev. If set to \f(CW3\fR, then the
5084verification code will be called very frequently, which will slow down 5094verification code will be called very frequently, which will slow down
5085libev considerably. 5095libev considerably.
5096.Sp
5097Verification errors are reported via C's \f(CW\*(C`assert\*(C'\fR mechanism, so if you
5098disable that (e.g. by defining \f(CW\*(C`NDEBUG\*(C'\fR) then no errors will be reported.
5086.Sp 5099.Sp
5087The default is \f(CW1\fR, unless \f(CW\*(C`EV_FEATURES\*(C'\fR overrides it, in which case it 5100The default is \f(CW1\fR, unless \f(CW\*(C`EV_FEATURES\*(C'\fR overrides it, in which case it
5088will be \f(CW0\fR. 5101will be \f(CW0\fR.
5089.IP "\s-1EV_COMMON\s0" 4 5102.IP "\s-1EV_COMMON\s0" 4
5090.IX Item "EV_COMMON" 5103.IX Item "EV_COMMON"

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines