diff options
author | Christopher Faylor <me@cgf.cx> | 2004-10-07 16:49:30 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2004-10-07 16:49:30 +0000 |
commit | 859d85dee0d52fb55ee9d98b16e7318f176f6bbe (patch) | |
tree | 3c10cb70ba75044273f3e18b20414d78f54a77cb /winsup/cygwin/spawn.cc | |
parent | 7c3db8ea2e668ae6e482900306d230c4fd0f50bf (diff) | |
download | cygnal-859d85dee0d52fb55ee9d98b16e7318f176f6bbe.tar.gz cygnal-859d85dee0d52fb55ee9d98b16e7318f176f6bbe.tar.bz2 cygnal-859d85dee0d52fb55ee9d98b16e7318f176f6bbe.zip |
* spawn.cc (pthread_cleanup::oldmask): Default to invalid signal mask.
(do_cleanup): Test for invalid signal mask to decide whether to restore the
mask rather than assuming zero mask indicates that there is nothing to do.
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r-- | winsup/cygwin/spawn.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 0766b40a7..db4210b31 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -326,7 +326,7 @@ struct pthread_cleanup _sig_func_ptr oldint; _sig_func_ptr oldquit; sigset_t oldmask; - pthread_cleanup (): oldint (NULL), oldquit (NULL), oldmask (0) {} + pthread_cleanup (): oldint (NULL), oldquit (NULL), oldmask ((sigset_t) -1) {} }; static void @@ -337,7 +337,7 @@ do_cleanup (void *args) signal (SIGINT, cleanup->oldint); if (cleanup->oldquit) signal (SIGQUIT, cleanup->oldquit); - if (cleanup->oldmask) + if (cleanup->oldmask != (sigset_t) -1) sigprocmask (SIG_SETMASK, &(cleanup->oldmask), NULL); # undef cleanup } |