… | |
… | |
370 | When this flag is specified, then libev will not attempt to use the |
370 | When this flag is specified, then libev will not attempt to use the |
371 | I<inotify> API for it's C<ev_stat> watchers. Apart from debugging and |
371 | I<inotify> API for it's C<ev_stat> watchers. Apart from debugging and |
372 | testing, this flag can be useful to conserve inotify file descriptors, as |
372 | testing, this flag can be useful to conserve inotify file descriptors, as |
373 | otherwise each loop using C<ev_stat> watchers consumes one inotify handle. |
373 | otherwise each loop using C<ev_stat> watchers consumes one inotify handle. |
374 | |
374 | |
375 | =item C<EVFLAG_NOSIGNALFD> |
375 | =item C<EVFLAG_NOSIGFD> |
376 | |
376 | |
377 | When this flag is specified, then libev will not attempt to use the |
377 | When this flag is specified, then libev will not attempt to use the |
378 | I<signalfd> API for it's C<ev_signal> (and C<ev_child>) watchers. This is |
378 | I<signalfd> API for it's C<ev_signal> (and C<ev_child>) watchers. This is |
379 | probably only useful to work around any bugs in libev. Consequently, this |
379 | probably only useful to work around any bugs in libev. Consequently, this |
380 | flag might go away once the signalfd functionality is considered stable, |
380 | flag might go away once the signalfd functionality is considered stable, |
… | |
… | |
410 | |
410 | |
411 | This backend maps C<EV_READ> to C<POLLIN | POLLERR | POLLHUP>, and |
411 | This backend maps C<EV_READ> to C<POLLIN | POLLERR | POLLHUP>, and |
412 | C<EV_WRITE> to C<POLLOUT | POLLERR | POLLHUP>. |
412 | C<EV_WRITE> to C<POLLOUT | POLLERR | POLLHUP>. |
413 | |
413 | |
414 | =item C<EVBACKEND_EPOLL> (value 4, Linux) |
414 | =item C<EVBACKEND_EPOLL> (value 4, Linux) |
|
|
415 | |
|
|
416 | Use the linux-specific epoll(7) interface (for both pre- and post-2.6.9 |
|
|
417 | kernels). |
415 | |
418 | |
416 | For few fds, this backend is a bit little slower than poll and select, |
419 | For few fds, this backend is a bit little slower than poll and select, |
417 | but it scales phenomenally better. While poll and select usually scale |
420 | but it scales phenomenally better. While poll and select usually scale |
418 | like O(total_fds) where n is the total number of fds (or the highest fd), |
421 | like O(total_fds) where n is the total number of fds (or the highest fd), |
419 | epoll scales either O(1) or O(active_fds). |
422 | epoll scales either O(1) or O(active_fds). |
… | |
… | |
590 | as signal and child watchers) would need to be stopped manually. |
593 | as signal and child watchers) would need to be stopped manually. |
591 | |
594 | |
592 | In general it is not advisable to call this function except in the |
595 | In general it is not advisable to call this function except in the |
593 | rare occasion where you really need to free e.g. the signal handling |
596 | rare occasion where you really need to free e.g. the signal handling |
594 | pipe fds. If you need dynamically allocated loops it is better to use |
597 | pipe fds. If you need dynamically allocated loops it is better to use |
595 | C<ev_loop_new> and C<ev_loop_destroy>). |
598 | C<ev_loop_new> and C<ev_loop_destroy>. |
596 | |
599 | |
597 | =item ev_loop_destroy (loop) |
600 | =item ev_loop_destroy (loop) |
598 | |
601 | |
599 | Like C<ev_default_destroy>, but destroys an event loop created by an |
602 | Like C<ev_default_destroy>, but destroys an event loop created by an |
600 | earlier call to C<ev_loop_new>. |
603 | earlier call to C<ev_loop_new>. |
… | |
… | |
704 | event loop time (see C<ev_now_update>). |
707 | event loop time (see C<ev_now_update>). |
705 | |
708 | |
706 | =item ev_loop (loop, int flags) |
709 | =item ev_loop (loop, int flags) |
707 | |
710 | |
708 | Finally, this is it, the event handler. This function usually is called |
711 | Finally, this is it, the event handler. This function usually is called |
709 | after you initialised all your watchers and you want to start handling |
712 | after you have initialised all your watchers and you want to start |
710 | events. |
713 | handling events. |
711 | |
714 | |
712 | If the flags argument is specified as C<0>, it will not return until |
715 | If the flags argument is specified as C<0>, it will not return until |
713 | either no event watchers are active anymore or C<ev_unloop> was called. |
716 | either no event watchers are active anymore or C<ev_unloop> was called. |
714 | |
717 | |
715 | Please note that an explicit C<ev_unloop> is usually better than |
718 | Please note that an explicit C<ev_unloop> is usually better than |
… | |
… | |
2136 | to install a fork handler with C<pthread_atfork> that resets it. That will |
2139 | to install a fork handler with C<pthread_atfork> that resets it. That will |
2137 | catch fork calls done by libraries (such as the libc) as well. |
2140 | catch fork calls done by libraries (such as the libc) as well. |
2138 | |
2141 | |
2139 | In current versions of libev, you can also ensure that the signal mask is |
2142 | In current versions of libev, you can also ensure that the signal mask is |
2140 | not blocking any signals (except temporarily, so thread users watch out) |
2143 | not blocking any signals (except temporarily, so thread users watch out) |
2141 | by specifying the C<EVFLAG_NOSIGNALFD> when creating the event loop. This |
2144 | by specifying the C<EVFLAG_NOSIGFD> when creating the event loop. This |
2142 | is not guaranteed for future versions, however. |
2145 | is not guaranteed for future versions, however. |
2143 | |
2146 | |
2144 | =head3 Watcher-Specific Functions and Data Members |
2147 | =head3 Watcher-Specific Functions and Data Members |
2145 | |
2148 | |
2146 | =over 4 |
2149 | =over 4 |