|
|
|
@ -129,7 +129,7 @@
|
|
|
|
|
.\" ========================================================================
|
|
|
|
|
.\"
|
|
|
|
|
.IX Title ""<STANDARD INPUT>" 1"
|
|
|
|
|
.TH "<STANDARD INPUT>" 1 "2007-11-27" "perl v5.8.8" "User Contributed Perl Documentation"
|
|
|
|
|
.TH "<STANDARD INPUT>" 1 "2007-11-28" "perl v5.8.8" "User Contributed Perl Documentation"
|
|
|
|
|
.SH "NAME"
|
|
|
|
|
libev \- a high performance full\-featured event loop written in C
|
|
|
|
|
.SH "SYNOPSIS"
|
|
|
|
@ -1385,7 +1385,7 @@ otherwise always forced to be at least one) and all the other fields of
|
|
|
|
|
the stat buffer having unspecified contents.
|
|
|
|
|
.PP
|
|
|
|
|
Since there is no standard to do this, the portable implementation simply
|
|
|
|
|
calls \f(CW\*(C`stat (2)\*(C'\fR regulalry on the path to see if it changed somehow. You
|
|
|
|
|
calls \f(CW\*(C`stat (2)\*(C'\fR regularly on the path to see if it changed somehow. You
|
|
|
|
|
can specify a recommended polling interval for this case. If you specify
|
|
|
|
|
a polling interval of \f(CW0\fR (highly recommended!) then a \fIsuitable,
|
|
|
|
|
unspecified default\fR value will be used (which you can expect to be around
|
|
|
|
@ -1397,8 +1397,13 @@ This watcher type is not meant for massive numbers of stat watchers,
|
|
|
|
|
as even with OS-supported change notifications, this can be
|
|
|
|
|
resource\-intensive.
|
|
|
|
|
.PP
|
|
|
|
|
At the time of this writing, no specific \s-1OS\s0 backends are implemented, but
|
|
|
|
|
if demand increases, at least a kqueue and inotify backend will be added.
|
|
|
|
|
At the time of this writing, only the Linux inotify interface is
|
|
|
|
|
implemented (implementing kqueue support is left as an exercise for the
|
|
|
|
|
reader). Inotify will be used to give hints only and should not change the
|
|
|
|
|
semantics of \f(CW\*(C`ev_stat\*(C'\fR watchers, which means that libev sometimes needs
|
|
|
|
|
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.
|
|
|
|
|
.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
|
|
|
|
@ -2172,6 +2177,11 @@ backend for Solaris 10 systems.
|
|
|
|
|
.IP "\s-1EV_USE_DEVPOLL\s0" 4
|
|
|
|
|
.IX Item "EV_USE_DEVPOLL"
|
|
|
|
|
reserved for future expansion, works like the \s-1USE\s0 symbols above.
|
|
|
|
|
.IP "\s-1EV_USE_INOTIFY\s0" 4
|
|
|
|
|
.IX Item "EV_USE_INOTIFY"
|
|
|
|
|
If defined to be \f(CW1\fR, libev will compile in support for the Linux inotify
|
|
|
|
|
interface to speed up \f(CW\*(C`ev_stat\*(C'\fR watchers. Its actual availability will
|
|
|
|
|
be detected at runtime.
|
|
|
|
|
.IP "\s-1EV_H\s0" 4
|
|
|
|
|
.IX Item "EV_H"
|
|
|
|
|
The name of the \fIev.h\fR header file used to include it. The default if
|
|
|
|
@ -2226,7 +2236,14 @@ some inlining decisions, saves roughly 30% codesize of amd64.
|
|
|
|
|
\&\f(CW\*(C`ev_child\*(C'\fR watchers use a small hash table to distribute workload by
|
|
|
|
|
pid. The default size is \f(CW16\fR (or \f(CW1\fR with \f(CW\*(C`EV_MINIMAL\*(C'\fR), usually more
|
|
|
|
|
than enough. If you need to manage thousands of children you might want to
|
|
|
|
|
increase this value.
|
|
|
|
|
increase this value (\fImust\fR be a power of two).
|
|
|
|
|
.IP "\s-1EV_INOTIFY_HASHSIZE\s0" 4
|
|
|
|
|
.IX Item "EV_INOTIFY_HASHSIZE"
|
|
|
|
|
\&\f(CW\*(C`ev_staz\*(C'\fR watchers use a small hash table to distribute workload by
|
|
|
|
|
inotify watch id. The default size is \f(CW16\fR (or \f(CW1\fR with \f(CW\*(C`EV_MINIMAL\*(C'\fR),
|
|
|
|
|
usually more than enough. If you need to manage thousands of \f(CW\*(C`ev_stat\*(C'\fR
|
|
|
|
|
watchers you might want to increase this value (\fImust\fR be a power of
|
|
|
|
|
two).
|
|
|
|
|
.IP "\s-1EV_COMMON\s0" 4
|
|
|
|
|
.IX Item "EV_COMMON"
|
|
|
|
|
By default, all watchers have a \f(CW\*(C`void *data\*(C'\fR member. By redefining
|
|
|
|
@ -2300,8 +2317,8 @@ documentation for \f(CW\*(C`ev_default_init\*(C'\fR.
|
|
|
|
|
.IX Item "Starting io/check/prepare/idle/signal/child watchers: O(1)"
|
|
|
|
|
.IP "Stopping check/prepare/idle watchers: O(1)" 4
|
|
|
|
|
.IX Item "Stopping check/prepare/idle watchers: O(1)"
|
|
|
|
|
.IP "Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % 16))" 4
|
|
|
|
|
.IX Item "Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % 16))"
|
|
|
|
|
.IP "Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % \s-1EV_PID_HASHSIZE\s0))" 4
|
|
|
|
|
.IX Item "Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % EV_PID_HASHSIZE))"
|
|
|
|
|
.IP "Finding the next timer per loop iteration: O(1)" 4
|
|
|
|
|
.IX Item "Finding the next timer per loop iteration: O(1)"
|
|
|
|
|
.IP "Each change on a file descriptor per loop iteration: O(number_of_watchers_for_this_fd)" 4
|
|
|
|
|