X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/05b6c3fe61a9e53d10406c6b7558c39f0a195514..71cf1659dedacff243a2aa51499d4a75e48f9443:/ev.c?ds=sidebyside diff --git a/ev.c b/ev.c index 371c62b..804002a 100644 --- a/ev.c +++ b/ev.c @@ -1754,8 +1754,21 @@ ev_signal_start (EV_P_ ev_signal *w) assert (("ev_signal_start called with illegal signal number", w->signum > 0)); + { +#ifndef _WIN32 + sigset_t full, prev; + sigfillset (&full); + sigprocmask (SIG_SETMASK, &full, &prev); +#endif + + array_needsize (ANSIG, signals, signalmax, w->signum, signals_init); + +#ifndef _WIN32 + sigprocmask (SIG_SETMASK, &prev, 0); +#endif + } + ev_start (EV_A_ (W)w, 1); - array_needsize (ANSIG, signals, signalmax, w->signum, signals_init); wlist_add ((WL *)&signals [w->signum - 1].head, (WL)w); if (!((WL)w)->next)