ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.pod
(Generate patch)

Comparing libev/ev.pod (file contents):
Revision 1.242 by root, Thu Jun 18 18:16:54 2009 UTC vs.
Revision 1.244 by root, Mon Jun 29 04:41:34 2009 UTC

1523C<after> argument to C<ev_timer_set>, and only ever use the C<repeat> 1523C<after> argument to C<ev_timer_set>, and only ever use the C<repeat>
1524member and C<ev_timer_again>. 1524member and C<ev_timer_again>.
1525 1525
1526At start: 1526At start:
1527 1527
1528 ev_timer_init (timer, callback); 1528 ev_init (timer, callback);
1529 timer->repeat = 60.; 1529 timer->repeat = 60.;
1530 ev_timer_again (loop, timer); 1530 ev_timer_again (loop, timer);
1531 1531
1532Each time there is some activity: 1532Each time there is some activity:
1533 1533
1595 1595
1596To start the timer, simply initialise the watcher and set C<last_activity> 1596To start the timer, simply initialise the watcher and set C<last_activity>
1597to the current time (meaning we just have some activity :), then call the 1597to the current time (meaning we just have some activity :), then call the
1598callback, which will "do the right thing" and start the timer: 1598callback, which will "do the right thing" and start the timer:
1599 1599
1600 ev_timer_init (timer, callback); 1600 ev_init (timer, callback);
1601 last_activity = ev_now (loop); 1601 last_activity = ev_now (loop);
1602 callback (loop, timer, EV_TIMEOUT); 1602 callback (loop, timer, EV_TIMEOUT);
1603 1603
1604And when there is some activity, simply store the current time in 1604And when there is some activity, simply store the current time in
1605C<last_activity>, no libev calls at all: 1605C<last_activity>, no libev calls at all:
2002some child status changes (most typically when a child of yours dies or 2002some child status changes (most typically when a child of yours dies or
2003exits). It is permissible to install a child watcher I<after> the child 2003exits). It is permissible to install a child watcher I<after> the child
2004has been forked (which implies it might have already exited), as long 2004has been forked (which implies it might have already exited), as long
2005as the event loop isn't entered (or is continued from a watcher), i.e., 2005as the event loop isn't entered (or is continued from a watcher), i.e.,
2006forking and then immediately registering a watcher for the child is fine, 2006forking and then immediately registering a watcher for the child is fine,
2007but forking and registering a watcher a few event loop iterations later is 2007but forking and registering a watcher a few event loop iterations later or
2008not. 2008in the next callback invocation is not.
2009 2009
2010Only the default event loop is capable of handling signals, and therefore 2010Only the default event loop is capable of handling signals, and therefore
2011you can only register child watchers in the default event loop. 2011you can only register child watchers in the default event loop.
2012 2012
2013=head3 Process Interaction 2013=head3 Process Interaction
2471 struct pollfd fds [nfd]; 2471 struct pollfd fds [nfd];
2472 // actual code will need to loop here and realloc etc. 2472 // actual code will need to loop here and realloc etc.
2473 adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ())); 2473 adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ()));
2474 2474
2475 /* the callback is illegal, but won't be called as we stop during check */ 2475 /* the callback is illegal, but won't be called as we stop during check */
2476 ev_timer_init (&tw, 0, timeout * 1e-3); 2476 ev_timer_init (&tw, 0, timeout * 1e-3, 0.);
2477 ev_timer_start (loop, &tw); 2477 ev_timer_start (loop, &tw);
2478 2478
2479 // create one ev_io per pollfd 2479 // create one ev_io per pollfd
2480 for (int i = 0; i < nfd; ++i) 2480 for (int i = 0; i < nfd; ++i)
2481 { 2481 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines