… | |
… | |
590 | as signal and child watchers) would need to be stopped manually. |
590 | as signal and child watchers) would need to be stopped manually. |
591 | |
591 | |
592 | In general it is not advisable to call this function except in the |
592 | 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 |
593 | 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 |
594 | pipe fds. If you need dynamically allocated loops it is better to use |
595 | C<ev_loop_new> and C<ev_loop_destroy>). |
595 | C<ev_loop_new> and C<ev_loop_destroy>. |
596 | |
596 | |
597 | =item ev_loop_destroy (loop) |
597 | =item ev_loop_destroy (loop) |
598 | |
598 | |
599 | Like C<ev_default_destroy>, but destroys an event loop created by an |
599 | Like C<ev_default_destroy>, but destroys an event loop created by an |
600 | earlier call to C<ev_loop_new>. |
600 | earlier call to C<ev_loop_new>. |
… | |
… | |
704 | event loop time (see C<ev_now_update>). |
704 | event loop time (see C<ev_now_update>). |
705 | |
705 | |
706 | =item ev_loop (loop, int flags) |
706 | =item ev_loop (loop, int flags) |
707 | |
707 | |
708 | Finally, this is it, the event handler. This function usually is called |
708 | 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 |
709 | after you have initialised all your watchers and you want to start |
710 | events. |
710 | handling events. |
711 | |
711 | |
712 | If the flags argument is specified as C<0>, it will not return until |
712 | 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. |
713 | either no event watchers are active anymore or C<ev_unloop> was called. |
714 | |
714 | |
715 | Please note that an explicit C<ev_unloop> is usually better than |
715 | Please note that an explicit C<ev_unloop> is usually better than |
… | |
… | |
2124 | and might or might not set or restore the installed signal handler. |
2124 | and might or might not set or restore the installed signal handler. |
2125 | |
2125 | |
2126 | While this does not matter for the signal disposition (libev never |
2126 | While this does not matter for the signal disposition (libev never |
2127 | sets signals to C<SIG_IGN>, so handlers will be reset to C<SIG_DFL> on |
2127 | sets signals to C<SIG_IGN>, so handlers will be reset to C<SIG_DFL> on |
2128 | C<execve>), this matters for the signal mask: many programs do not expect |
2128 | C<execve>), this matters for the signal mask: many programs do not expect |
2129 | many signals to be blocked. |
2129 | certain signals to be blocked. |
2130 | |
2130 | |
2131 | This means that before calling C<exec> (from the child) you should reset |
2131 | This means that before calling C<exec> (from the child) you should reset |
2132 | the signal mask to whatever "default" you expect (all clear is a good |
2132 | the signal mask to whatever "default" you expect (all clear is a good |
2133 | choice usually). |
2133 | choice usually). |
|
|
2134 | |
|
|
2135 | The simplest way to ensure that the signal mask is reset in the child is |
|
|
2136 | 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. |
|
|
2138 | |
|
|
2139 | 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) |
|
|
2141 | by specifying the C<EVFLAG_NOSIGNALFD> when creating the event loop. This |
|
|
2142 | is not guaranteed for future versions, however. |
2134 | |
2143 | |
2135 | =head3 Watcher-Specific Functions and Data Members |
2144 | =head3 Watcher-Specific Functions and Data Members |
2136 | |
2145 | |
2137 | =over 4 |
2146 | =over 4 |
2138 | |
2147 | |