diff options
author | root <root> | 2007-11-27 20:15:01 +0000 |
---|---|---|
committer | root <root> | 2007-11-27 20:15:01 +0000 |
commit | bd14babf134e551f28f49193bf20705933c772c8 (patch) | |
tree | 2070cde808a7e8aef7e97e4b426da6c25d260683 /ev.pod | |
parent | 13ceb5587aabc8cb42b646a7c85625c2f50171dc (diff) |
- ein bild sagt mehr als tausend worte
- the last entry was bollocks, timers did work
Diffstat (limited to 'ev.pod')
-rw-r--r-- | ev.pod | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -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 |