# HG changeset patch # User Paul Eggert # Date 1309935940 25200 # Node ID ee3d72d886e636a5145fd6e820571409740d881e # Parent 2080394d2815cc3d2fb8d2d80601c03c4379782f pselect: Use pthread_sigmask, not sigprocmask. * lib/pselect.c (pselect): Use pthread_sigmask, as it supports multithreaded apps better than sigprocmask does. * modules/pselect (Depends-on): Depend on pthread_sigmask, not sigprocmask directly. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-07-06 Paul Eggert + + pselect: Use pthread_sigmask, not sigprocmask. + * lib/pselect.c (pselect): Use pthread_sigmask, as it supports + multithreaded apps better than sigprocmask does. + * modules/pselect (Depends-on): Depend on pthread_sigmask, not + sigprocmask directly. + 2011-07-05 Paul Eggert * lib/pselect.c (pselect): Use plain name, without "rpl_". diff --git a/lib/pselect.c b/lib/pselect.c --- a/lib/pselect.c +++ b/lib/pselect.c @@ -62,14 +62,14 @@ /* Signal mask munging should be atomic, but this is the best we can do in this emulation. */ if (sigmask) - sigprocmask (SIG_SETMASK, sigmask, &origmask); + pthread_sigmask (SIG_SETMASK, sigmask, &origmask); select_result = select (nfds, rfds, wfds, xfds, tvp); if (sigmask) { int select_errno = errno; - sigprocmask (SIG_SETMASK, &origmask, NULL); + pthread_sigmask (SIG_SETMASK, &origmask, NULL); errno = select_errno; } diff --git a/modules/pselect b/modules/pselect --- a/modules/pselect +++ b/modules/pselect @@ -7,6 +7,7 @@ Depends-on: sys_select +pthread_sigmask [test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1] select [test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1] configure.ac: