diff options
| author | root <root> | 2009-12-31 06:50:16 +0000 | 
|---|---|---|
| committer | root <root> | 2009-12-31 06:50:16 +0000 | 
| commit | 79c861bdfe661c42e87b0a4ec16f2ae74a076839 (patch) | |
| tree | 38a7a967c8ef8d1974d9395c74097d8ee7c37c3e /ev.c | |
| parent | 8677f079b7fe2b47d72613d15a71d7b27f14c5eb (diff) | |
*** empty log message ***
Diffstat (limited to 'ev.c')
| -rw-r--r-- | ev.c | 11 | 
1 files changed, 7 insertions, 4 deletions
| @@ -1607,7 +1607,7 @@ loop_init (EV_P_ unsigned int flags)        fs_fd             = flags & EVFLAG_NOINOTIFY ? -1 : -2;  #endif  #if EV_USE_SIGNALFD -      sigfd             = flags & EVFLAG_NOSIGFD   ? -1 : -2; +      sigfd             = flags & EVFLAG_SIGNALFD  ? -2 : -1;  #endif        if (!(flags & 0x0000ffffU)) @@ -2792,11 +2792,14 @@ ev_signal_stop (EV_P_ ev_signal *w)  #if EV_USE_SIGNALFD        if (sigfd >= 0)          { -          sigprocmask (SIG_UNBLOCK, &sigfd_set, 0);//D +          sigset_t ss; + +          sigemptyset (&ss); +          sigaddset (&ss, w->signum);            sigdelset (&sigfd_set, w->signum); +            signalfd (sigfd, &sigfd_set, 0); -          sigprocmask (SIG_BLOCK, &sigfd_set, 0);//D -          /*TODO: maybe unblock signal? */ +          sigprocmask (SIG_UNBLOCK, &ss, 0);          }        else  #endif | 
