4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-18 23:12:15 +08:00

* 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.
This commit is contained in:
Christopher Faylor 2004-10-07 16:49:30 +00:00
parent 7c3db8ea2e
commit 859d85dee0
3 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2004-10-07 Christopher Faylor <cgf@timesys.com>
* 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.
2004-10-07 Mark Paulus <mark.paulus@mci.com>
* fhandler_tty.cc (fhandler_tty_slave::read): Use previously

View File

@ -278,6 +278,7 @@ struct init_cygheap
size_t sthreads;
int open_fhs;
pid_t pid; /* my pid */
const char *system_root;
void close_ctty ();
};

View File

@ -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
}