diff options
author | Eric Blake <eblake@redhat.com> | 2011-07-10 00:01:33 +0000 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2011-07-10 00:01:33 +0000 |
commit | 14295a59d3e9b6a20d4cef1aeaa19f31f84ec30b (patch) | |
tree | 1da3c842339c3039a55dc9ce2f558a2b69e93592 | |
parent | f6835aecb3090461498ee588152a86ec816b61ec (diff) | |
download | cygnal-14295a59d3e9b6a20d4cef1aeaa19f31f84ec30b.tar.gz cygnal-14295a59d3e9b6a20d4cef1aeaa19f31f84ec30b.tar.bz2 cygnal-14295a59d3e9b6a20d4cef1aeaa19f31f84ec30b.zip |
pthread_sigmask: fix return value to match POSIX
* signal.cc (handle_sigprocmask): Return error rather than setting
errno, for pthread_sigmask.
(sigprocmask): Adjust caller.
-rw-r--r-- | winsup/cygwin/ChangeLog | 6 | ||||
-rw-r--r-- | winsup/cygwin/signal.cc | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index da03f8b25..76a6022d0 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2011-07-09 Eric Blake <eblake@redhat.com> + + * signal.cc (handle_sigprocmask): Return error rather than setting + errno, for pthread_sigmask. + (sigprocmask): Adjust caller. + 2011-07-07 Corinna Vinschen <corinna@vinschen.de> * miscfuncs.cc (yield): Drop thread priority only once. diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc index 9c920d037..4c472fda3 100644 --- a/winsup/cygwin/signal.cc +++ b/winsup/cygwin/signal.cc @@ -174,7 +174,10 @@ usleep (useconds_t useconds) extern "C" int sigprocmask (int how, const sigset_t *set, sigset_t *oldset) { - return handle_sigprocmask (how, set, oldset, _my_tls.sigmask); + int res = handle_sigprocmask (how, set, oldset, _my_tls.sigmask); + if (res) + set_errno (res); + return res ? -1 : 0; } int __stdcall @@ -184,13 +187,12 @@ handle_sigprocmask (int how, const sigset_t *set, sigset_t *oldset, sigset_t& op if (how != SIG_BLOCK && how != SIG_UNBLOCK && how != SIG_SETMASK) { syscall_printf ("Invalid how value %d", how); - set_errno (EINVAL); - return -1; + return EINVAL; } myfault efault; if (efault.faulted (EFAULT)) - return -1; + return EFAULT; if (oldset) *oldset = opmask; |