mirror of /home/gitosis/repositories/libev.git
- ein bild sagt mehr als tausend worte
- the last entry was bollocks, timers did work
This commit is contained in:
parent
0f27a2bedb
commit
5b266143c3
58
ev.3
58
ev.3
|
@ -134,9 +134,65 @@
|
|||
libev \- a high performance full\-featured event loop written in C
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
.Vb 1
|
||||
.Vb 2
|
||||
\& /* this is the only header you need */
|
||||
\& #include <ev.h>
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 3
|
||||
\& /* what follows is a fully working example program */
|
||||
\& ev_io stdin_watcher;
|
||||
\& ev_timer timeout_watcher;
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 8
|
||||
\& /* called when data readable on stdin */
|
||||
\& static void
|
||||
\& stdin_cb (EV_P_ struct ev_io *w, int revents)
|
||||
\& {
|
||||
\& /* puts ("stdin ready"); */
|
||||
\& ev_io_stop (EV_A_ w); /* just a syntax example */
|
||||
\& ev_unloop (EV_A_ EVUNLOOP_ALL); /* leave all loop calls */
|
||||
\& }
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 6
|
||||
\& static void
|
||||
\& timeout_cb (EV_P_ struct ev_timer *w, int revents)
|
||||
\& {
|
||||
\& /* puts ("timeout"); */
|
||||
\& ev_unloop (EV_A_ EVUNLOOP_ONE); /* leave one loop call */
|
||||
\& }
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 4
|
||||
\& int
|
||||
\& main (void)
|
||||
\& {
|
||||
\& struct ev_loop *loop = ev_default_loop (0);
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 3
|
||||
\& /* initialise an io watcher, then start it */
|
||||
\& ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ 0, EV_READ);
|
||||
\& ev_io_start (loop, &stdin_watcher);
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 3
|
||||
\& /* simple non-repeating 5.5 second timeout */
|
||||
\& ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.);
|
||||
\& ev_timer_start (loop, &timeout_watcher);
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 2
|
||||
\& /* loop till timeout or data ready */
|
||||
\& ev_loop (loop, 0);
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 2
|
||||
\& return 0;
|
||||
\& }
|
||||
.Ve
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
Libev is an event loop: you register interest in certain events (such as a
|
||||
|
|
44
ev.html
44
ev.html
|
@ -6,7 +6,7 @@
|
|||
<meta name="description" content="Pod documentation for libev" />
|
||||
<meta name="inputfile" content="<standard input>" />
|
||||
<meta name="outputfile" content="<standard output>" />
|
||||
<meta name="created" content="Tue Nov 27 20:38:24 2007" />
|
||||
<meta name="created" content="Tue Nov 27 21:14:27 2007" />
|
||||
<meta name="generator" content="Pod::Xhtml 1.57" />
|
||||
<link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head>
|
||||
<body>
|
||||
|
@ -68,7 +68,47 @@
|
|||
</div>
|
||||
<h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
|
||||
<div id="SYNOPSIS_CONTENT">
|
||||
<pre> #include <ev.h>
|
||||
<pre> /* this is the only header you need */
|
||||
#include <ev.h>
|
||||
|
||||
/* what follows is a fully working example program */
|
||||
ev_io stdin_watcher;
|
||||
ev_timer timeout_watcher;
|
||||
|
||||
/* called when data readable on stdin */
|
||||
static void
|
||||
stdin_cb (EV_P_ struct ev_io *w, int revents)
|
||||
{
|
||||
/* puts ("stdin ready"); */
|
||||
ev_io_stop (EV_A_ w); /* just a syntax example */
|
||||
ev_unloop (EV_A_ EVUNLOOP_ALL); /* leave all loop calls */
|
||||
}
|
||||
|
||||
static void
|
||||
timeout_cb (EV_P_ struct ev_timer *w, int revents)
|
||||
{
|
||||
/* puts ("timeout"); */
|
||||
ev_unloop (EV_A_ EVUNLOOP_ONE); /* leave one loop call */
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
struct ev_loop *loop = ev_default_loop (0);
|
||||
|
||||
/* initialise an io watcher, then start it */
|
||||
ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ 0, EV_READ);
|
||||
ev_io_start (loop, &stdin_watcher);
|
||||
|
||||
/* simple non-repeating 5.5 second timeout */
|
||||
ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.);
|
||||
ev_timer_start (loop, &timeout_watcher);
|
||||
|
||||
/* loop till timeout or data ready */
|
||||
ev_loop (loop, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
</pre>
|
||||
|
||||
|
|
40
ev.pod
40
ev.pod
|
@ -4,8 +4,48 @@ libev - a high performance full-featured event loop written in C
|
|||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
/* this is the only header you need */
|
||||
#include <ev.h>
|
||||
|
||||
/* what follows is a fully working example program */
|
||||
ev_io stdin_watcher;
|
||||
ev_timer timeout_watcher;
|
||||
|
||||
/* called when data readable on stdin */
|
||||
static void
|
||||
stdin_cb (EV_P_ struct ev_io *w, int revents)
|
||||
{
|
||||
/* puts ("stdin ready"); */
|
||||
ev_io_stop (EV_A_ w); /* just a syntax example */
|
||||
ev_unloop (EV_A_ EVUNLOOP_ALL); /* leave all loop calls */
|
||||
}
|
||||
|
||||
static void
|
||||
timeout_cb (EV_P_ struct ev_timer *w, int revents)
|
||||
{
|
||||
/* puts ("timeout"); */
|
||||
ev_unloop (EV_A_ EVUNLOOP_ONE); /* leave one loop call */
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
struct ev_loop *loop = ev_default_loop (0);
|
||||
|
||||
/* initialise an io watcher, then start it */
|
||||
ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ 0, EV_READ);
|
||||
ev_io_start (loop, &stdin_watcher);
|
||||
|
||||
/* simple non-repeating 5.5 second timeout */
|
||||
ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.);
|
||||
ev_timer_start (loop, &timeout_watcher);
|
||||
|
||||
/* loop till timeout or data ready */
|
||||
ev_loop (loop, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Libev is an event loop: you register interest in certain events (such as a
|
||||
|
|
Loading…
Reference in New Issue