<meta name="description" content="Pod documentation for libev" />
<meta name="inputfile" content="<standard input>" />
<meta name="outputfile" content="<standard output>" />
<meta name="description" content="Pod documentation for libev" />
<meta name="inputfile" content="<standard input>" />
<meta name="outputfile" content="<standard output>" />
<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>
level-triggering because you keep receiving events as long as the
condition persists. Remember you can stop the watcher if you don't want to
act on the event and neither want to receive future events).</p>
level-triggering because you keep receiving events as long as the
condition persists. Remember you can stop the watcher if you don't want to
act on the event and neither want to receive future events).</p>
fd as you want (as long as you don't confuse yourself). Setting all file
descriptors to non-blocking mode is also usually a good idea (but not
required if you know what you are doing).</p>
<p>You have to be careful with dup'ed file descriptors, though. Some backends
(the linux epoll backend is a notable example) cannot handle dup'ed file
descriptors correctly if you register interest in two or more fds pointing
fd as you want (as long as you don't confuse yourself). Setting all file
descriptors to non-blocking mode is also usually a good idea (but not
required if you know what you are doing).</p>
<p>You have to be careful with dup'ed file descriptors, though. Some backends
(the linux epoll backend is a notable example) cannot handle dup'ed file
descriptors correctly if you register interest in two or more fds pointing
<p>If you must do this, then force the use of a known-to-be-good backend
(at the time of this writing, this includes only EVMETHOD_SELECT and
EVMETHOD_POLL).</p>
<p>If you must do this, then force the use of a known-to-be-good backend
(at the time of this writing, this includes only EVMETHOD_SELECT and
EVMETHOD_POLL).</p>
<p>Timer watchers are simple relative timers that generate an event after a
given time, and optionally repeating in regular intervals after that.</p>
<p>The timers are based on real time, that is, if you register an event that
<p>Timer watchers are simple relative timers that generate an event after a
given time, and optionally repeating in regular intervals after that.</p>
<p>The timers are based on real time, that is, if you register an event that
time, it will still time out after (roughly) and hour. "Roughly" because
detecting time jumps is hard, and soem inaccuracies are unavoidable (the
monotonic clock option helps a lot here).</p>
time, it will still time out after (roughly) and hour. "Roughly" because
detecting time jumps is hard, and soem inaccuracies are unavoidable (the
monotonic clock option helps a lot here).</p>
time. This is usually the right thing as this timestamp refers to the time
of the event triggering whatever timeout you are modifying/starting. If
you suspect event processing to be delayed and you *need* to base the timeout
time. This is usually the right thing as this timestamp refers to the time
of the event triggering whatever timeout you are modifying/starting. If
you suspect event processing to be delayed and you *need* to base the timeout
<p>The timer itself will do a best-effort at avoiding drift, that is, if you
configure a timer to trigger every 10 seconds, then it will trigger at
exactly 10 second intervals. If, however, your program cannot keep up with
<p>The timer itself will do a best-effort at avoiding drift, that is, if you
configure a timer to trigger every 10 seconds, then it will trigger at
exactly 10 second intervals. If, however, your program cannot keep up with
<p>This function combines a simple timer and an I/O watcher, calls your
callback on whichever event happens first and automatically stop both
watchers. This is useful if you want to wait for a single event on an fd
<p>This function combines a simple timer and an I/O watcher, calls your
callback on whichever event happens first and automatically stop both
watchers. This is useful if you want to wait for a single event on an fd
more watchers yourself.</p>
<p>If <code>fd</code> is less than 0, then no I/O watcher will be started and events
is being ignored. Otherwise, an <code>ev_io</code> watcher for the given <code>fd</code> and
more watchers yourself.</p>
<p>If <code>fd</code> is less than 0, then no I/O watcher will be started and events
is being ignored. Otherwise, an <code>ev_io</code> watcher for the given <code>fd</code> and