]> git.llucax.com Git - software/libev.git/commitdiff
*** empty log message ***
authorroot <root>
Tue, 11 Dec 2007 22:04:55 +0000 (22:04 +0000)
committerroot <root>
Tue, 11 Dec 2007 22:04:55 +0000 (22:04 +0000)
ev.c

diff --git a/ev.c b/ev.c
index 371c62b86799e050e152b1f98ee21431222d5e56..804002a8bd7904f7f521d5abe03fc488d5e1d408 100644 (file)
--- 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)