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

Comparing libev/ev.pod (file contents):
Revision 1.26 by root, Tue Nov 13 03:11:57 2007 UTC vs.
Revision 1.27 by root, Wed Nov 14 05:02:07 2007 UTC

238one iteration of the loop. 238one iteration of the loop.
239 239
240This flags value could be used to implement alternative looping 240This flags value could be used to implement alternative looping
241constructs, but the C<prepare> and C<check> watchers provide a better and 241constructs, but the C<prepare> and C<check> watchers provide a better and
242more generic mechanism. 242more generic mechanism.
243
244Here are the gory details of what ev_loop does:
245
246 1. If there are no active watchers (reference count is zero), return.
247 2. Queue and immediately call all prepare watchers.
248 3. If we have been forked, recreate the kernel state.
249 4. Update the kernel state with all outstanding changes.
250 5. Update the "event loop time".
251 6. Calculate for how long to block.
252 7. Block the process, waiting for events.
253 8. Update the "event loop time" and do time jump handling.
254 9. Queue all outstanding timers.
255 10. Queue all outstanding periodics.
256 11. If no events are pending now, queue all idle watchers.
257 12. Queue all check watchers.
258 13. Call all queued watchers in reverse order (i.e. check watchers first).
259 14. If ev_unloop has been called or EVLOOP_ONESHOT or EVLOOP_NONBLOCK
260 was used, return, otherwise continue with step #1.
243 261
244=item ev_unloop (loop, how) 262=item ev_unloop (loop, how)
245 263
246Can be used to make a call to C<ev_loop> return early (but only after it 264Can be used to make a call to C<ev_loop> return early (but only after it
247has processed all outstanding events). The C<how> argument must be either 265has processed all outstanding events). The C<how> argument must be either

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines