From: Paul Eggert Date: Wed, 6 Jul 2011 07:05:40 +0000 (-0700) Subject: pselect: Use pthread_sigmask, not sigprocmask. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1700ce3993628d025bf3bdc2b11f9eebe6575396;p=pspp 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 index ba7d0e4f39..bea73df843 100644 --- 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 index 6b9ba22ad3..5b709a299c 100644 --- a/lib/pselect.c +++ b/lib/pselect.c @@ -62,14 +62,14 @@ pselect (int nfds, fd_set *restrict rfds, /* 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 index 0ed5d8b63e..73c1e9f58e 100644 --- a/modules/pselect +++ b/modules/pselect @@ -7,6 +7,7 @@ m4/pselect.m4 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: