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

Comparing libev/ev.3 (file contents):
Revision 1.116 by root, Sun Jul 7 06:00:32 2019 UTC vs.
Revision 1.118 by root, Sat Dec 21 16:11:51 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-07-07" "libev-4.27" "libev - high performance full featured event loop" 136.TH LIBEV 3 "2019-12-21" "libev-4.31" "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"
606want to handle signals only in specific threads and want to avoid libev 606want to handle signals only in specific threads and want to avoid libev
607unblocking the signals. 607unblocking the signals.
608.Sp 608.Sp
609It's also required by \s-1POSIX\s0 in a threaded program, as libev calls 609It's also required by \s-1POSIX\s0 in a threaded program, as libev calls
610\&\f(CW\*(C`sigprocmask\*(C'\fR, whose behaviour is officially unspecified. 610\&\f(CW\*(C`sigprocmask\*(C'\fR, whose behaviour is officially unspecified.
611.ie n .IP """EVFLAG_NOTIMERFD""" 4
612.el .IP "\f(CWEVFLAG_NOTIMERFD\fR" 4
613.IX Item "EVFLAG_NOTIMERFD"
614When this flag is specified, the libev will avoid using a \f(CW\*(C`timerfd\*(C'\fR to
615detect time jumps. It will still be able to detect time jumps, but takes
616longer and has a lower accuracy in doing so, but saves a file descriptor
617per loop.
611.Sp 618.Sp
612This flag's behaviour will become the default in future versions of libev. 619The current implementation only tries to use a \f(CW\*(C`timerfd\*(C'\fR when the first
620\&\f(CW\*(C`ev_periodic\*(C'\fR watcher is started and falls back on other methods if it
621cannot be created, but this behaviour might change in the future.
613.ie n .IP """EVBACKEND_SELECT"" (value 1, portable select backend)" 4 622.ie n .IP """EVBACKEND_SELECT"" (value 1, portable select backend)" 4
614.el .IP "\f(CWEVBACKEND_SELECT\fR (value 1, portable select backend)" 4 623.el .IP "\f(CWEVBACKEND_SELECT\fR (value 1, portable select backend)" 4
615.IX Item "EVBACKEND_SELECT (value 1, portable select backend)" 624.IX Item "EVBACKEND_SELECT (value 1, portable select backend)"
616This is your standard \fBselect\fR\|(2) backend. Not \fIcompletely\fR standard, as 625This is your standard \fBselect\fR\|(2) backend. Not \fIcompletely\fR standard, as
617libev tries to roll its own fd_set with no limits on the number of fds, 626libev tries to roll its own fd_set with no limits on the number of fds,
1654.IX Subsection "WATCHER PRIORITY MODELS" 1663.IX Subsection "WATCHER PRIORITY MODELS"
1655Many event loops support \fIwatcher priorities\fR, which are usually small 1664Many event loops support \fIwatcher priorities\fR, which are usually small
1656integers that influence the ordering of event callback invocation 1665integers that influence the ordering of event callback invocation
1657between watchers in some way, all else being equal. 1666between watchers in some way, all else being equal.
1658.PP 1667.PP
1659In libev, Watcher priorities can be set using \f(CW\*(C`ev_set_priority\*(C'\fR. See its 1668In libev, watcher priorities can be set using \f(CW\*(C`ev_set_priority\*(C'\fR. See its
1660description for the more technical details such as the actual priority 1669description for the more technical details such as the actual priority
1661range. 1670range.
1662.PP 1671.PP
1663There are two common ways how these these priorities are being interpreted 1672There are two common ways how these these priorities are being interpreted
1664by event loops: 1673by event loops:
4747higher, as it simplifies linking (no need for \f(CW\*(C`\-lrt\*(C'\fR). 4756higher, as it simplifies linking (no need for \f(CW\*(C`\-lrt\*(C'\fR).
4748.IP "\s-1EV_USE_NANOSLEEP\s0" 4 4757.IP "\s-1EV_USE_NANOSLEEP\s0" 4
4749.IX Item "EV_USE_NANOSLEEP" 4758.IX Item "EV_USE_NANOSLEEP"
4750If defined to be \f(CW1\fR, libev will assume that \f(CW\*(C`nanosleep ()\*(C'\fR is available 4759If defined to be \f(CW1\fR, libev will assume that \f(CW\*(C`nanosleep ()\*(C'\fR is available
4751and will use it for delays. Otherwise it will use \f(CW\*(C`select ()\*(C'\fR. 4760and will use it for delays. Otherwise it will use \f(CW\*(C`select ()\*(C'\fR.
4761.IP "\s-1EV_USE_EVENTFD\s0" 4
4762.IX Item "EV_USE_EVENTFD"
4763If defined to be \f(CW1\fR, then libev will assume that \f(CW\*(C`eventfd ()\*(C'\fR is
4764available and will probe for kernel support at runtime. This will improve
4765\&\f(CW\*(C`ev_signal\*(C'\fR and \f(CW\*(C`ev_async\*(C'\fR performance and reduce resource consumption.
4766If undefined, it will be enabled if the headers indicate GNU/Linux + Glibc
47672.7 or newer, otherwise disabled.
4768.IP "\s-1EV_USE_SIGNALFD\s0" 4
4769.IX Item "EV_USE_SIGNALFD"
4770If defined to be \f(CW1\fR, then libev will assume that \f(CW\*(C`signalfd ()\*(C'\fR is
4771available and will probe for kernel support at runtime. This enables
4772the use of \s-1EVFLAG_SIGNALFD\s0 for faster and simpler signal handling. If
4773undefined, it will be enabled if the headers indicate GNU/Linux + Glibc
47742.7 or newer, otherwise disabled.
4775.IP "\s-1EV_USE_TIMERFD\s0" 4
4776.IX Item "EV_USE_TIMERFD"
4777If defined to be \f(CW1\fR, then libev will assume that \f(CW\*(C`timerfd ()\*(C'\fR is
4778available and will probe for kernel support at runtime. This allows
4779libev to detect time jumps accurately. If undefined, it will be enabled
4780if the headers indicate GNU/Linux + Glibc 2.8 or newer and define
4781\&\f(CW\*(C`TFD_TIMER_CANCEL_ON_SET\*(C'\fR, otherwise disabled.
4752.IP "\s-1EV_USE_EVENTFD\s0" 4 4782.IP "\s-1EV_USE_EVENTFD\s0" 4
4753.IX Item "EV_USE_EVENTFD" 4783.IX Item "EV_USE_EVENTFD"
4754If defined to be \f(CW1\fR, then libev will assume that \f(CW\*(C`eventfd ()\*(C'\fR is 4784If defined to be \f(CW1\fR, then libev will assume that \f(CW\*(C`eventfd ()\*(C'\fR is
4755available and will probe for kernel support at runtime. This will improve 4785available and will probe for kernel support at runtime. This will improve
4756\&\f(CW\*(C`ev_signal\*(C'\fR and \f(CW\*(C`ev_async\*(C'\fR performance and reduce resource consumption. 4786\&\f(CW\*(C`ev_signal\*(C'\fR and \f(CW\*(C`ev_async\*(C'\fR performance and reduce resource consumption.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines