diff options
| -rw-r--r-- | ev.3 | 58 | ||||
| -rw-r--r-- | ev.html | 44 | ||||
| -rw-r--r-- | ev.pod | 40 | 
3 files changed, 139 insertions, 3 deletions
| @@ -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 @@ -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> @@ -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 | 
