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

Comparing libev/ev.pod (file contents):
Revision 1.342 by root, Wed Nov 10 13:16:44 2010 UTC vs.
Revision 1.343 by root, Wed Nov 10 13:39:10 2010 UTC

355=item struct ev_loop *ev_loop_new (unsigned int flags) 355=item struct ev_loop *ev_loop_new (unsigned int flags)
356 356
357This will create and initialise a new event loop object. If the loop 357This will create and initialise a new event loop object. If the loop
358could not be initialised, returns false. 358could not be initialised, returns false.
359 359
360Note that this function I<is> thread-safe, and one common way to use 360This function is thread-safe, and one common way to use libev with
361libev with threads is indeed to create one loop per thread, and using the 361threads is indeed to create one loop per thread, and using the default
362default loop in the "main" or "initial" thread. 362loop in the "main" or "initial" thread.
363 363
364The flags argument can be used to specify special behaviour or specific 364The flags argument can be used to specify special behaviour or specific
365backends to use, and is usually specified as C<0> (or C<EVFLAG_AUTO>). 365backends to use, and is usually specified as C<0> (or C<EVFLAG_AUTO>).
366 366
367The following flags are supported: 367The following flags are supported:
677prepare and check phases. 677prepare and check phases.
678 678
679=item unsigned int ev_depth (loop) 679=item unsigned int ev_depth (loop)
680 680
681Returns the number of times C<ev_run> was entered minus the number of 681Returns the number of times C<ev_run> was entered minus the number of
682times C<ev_run> was exited, in other words, the recursion depth. 682times C<ev_run> was exited normally, in other words, the recursion depth.
683 683
684Outside C<ev_run>, this number is zero. In a callback, this number is 684Outside C<ev_run>, this number is zero. In a callback, this number is
685C<1>, unless C<ev_run> was invoked recursively (or from another thread), 685C<1>, unless C<ev_run> was invoked recursively (or from another thread),
686in which case it is higher. 686in which case it is higher.
687 687
688Leaving C<ev_run> abnormally (setjmp/longjmp, cancelling the thread 688Leaving C<ev_run> abnormally (setjmp/longjmp, cancelling the thread,
689etc.), doesn't count as "exit" - consider this as a hint to avoid such 689throwing an exception etc.), doesn't count as "exit" - consider this
690ungentleman-like behaviour unless it's really convenient. 690as a hint to avoid such ungentleman-like behaviour unless it's really
691convenient, in which case it is fully supported.
691 692
692=item unsigned int ev_backend (loop) 693=item unsigned int ev_backend (loop)
693 694
694Returns one of the C<EVBACKEND_*> flags indicating the event backend in 695Returns one of the C<EVBACKEND_*> flags indicating the event backend in
695use. 696use.
756relying on all watchers to be stopped when deciding when a program has 757relying on all watchers to be stopped when deciding when a program has
757finished (especially in interactive programs), but having a program 758finished (especially in interactive programs), but having a program
758that automatically loops as long as it has to and no longer by virtue 759that automatically loops as long as it has to and no longer by virtue
759of relying on its watchers stopping correctly, that is truly a thing of 760of relying on its watchers stopping correctly, that is truly a thing of
760beauty. 761beauty.
762
763This function is also I<mostly> exception-safe - you can break out of
764a C<ev_run> call by calling C<longjmp> in a callback, throwing a C++
765exception and so on. This does not decrement the C<ev_depth> value, nor
766will it clear any outstanding C<EVBREAK_ONE> breaks.
761 767
762A flags value of C<EVRUN_NOWAIT> will look for new events, will handle 768A flags value of C<EVRUN_NOWAIT> will look for new events, will handle
763those events and any already outstanding ones, but will not wait and 769those events and any already outstanding ones, but will not wait and
764block your process in case there are no events and will return after one 770block your process in case there are no events and will return after one
765iteration of the loop. This is sometimes useful to poll and handle new 771iteration of the loop. This is sometimes useful to poll and handle new
827Can be used to make a call to C<ev_run> return early (but only after it 833Can be used to make a call to C<ev_run> return early (but only after it
828has processed all outstanding events). The C<how> argument must be either 834has processed all outstanding events). The C<how> argument must be either
829C<EVBREAK_ONE>, which will make the innermost C<ev_run> call return, or 835C<EVBREAK_ONE>, which will make the innermost C<ev_run> call return, or
830C<EVBREAK_ALL>, which will make all nested C<ev_run> calls return. 836C<EVBREAK_ALL>, which will make all nested C<ev_run> calls return.
831 837
832This "break state" will be cleared when entering C<ev_run> again. 838This "break state" will be cleared on the next call to C<ev_run>.
833 839
834It is safe to call C<ev_break> from outside any C<ev_run> calls, too. 840It is safe to call C<ev_break> from outside any C<ev_run> calls, too, in
841which case it will have no effect.
835 842
836=item ev_ref (loop) 843=item ev_ref (loop)
837 844
838=item ev_unref (loop) 845=item ev_unref (loop)
839 846

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines