Fix lwevent_signalfd(): it should call sigprocmask()
This commit is contained in:
parent
7f76359388
commit
397939b4d5
|
@ -7,11 +7,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define SIZEOF_SIG (_NSIG / 8)
|
||||||
|
#define SIZEOF_SIGSET (SIZEOF_SIG > sizeof(sigset_t) ? sizeof(sigset_t): SIZEOF_SIG)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int signalfd(int fd, const sigset_t* mask)
|
int signalfd(int fd, const sigset_t* mask)
|
||||||
{
|
{
|
||||||
size_t sz;
|
return syscall(__NR_signalfd, fd, mask, SIZEOF_SIGSET);
|
||||||
sz = sizeof(sigset_t);
|
|
||||||
return syscall(__NR_signalfd, fd, mask, sz);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,6 +76,8 @@ struct lwevent_signal* lwevent_signalfd(const sigset_t* mask, lwevent_signalcb c
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEMP_FAILURE_RETRY( sigprocmask(SIG_BLOCK, &si->mask, 0) );
|
||||||
|
|
||||||
lwevent_set_user(si->ev, si);
|
lwevent_set_user(si->ev, si);
|
||||||
return si;
|
return si;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue