From db7f135b03afa5f8ee870f87d1727d69dade30ce Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Tue, 23 Aug 2005 22:22:52 +0000 Subject: * sigproc.h (set_signal_mask): Remove default on second parameter and make pass by reference. * signal.cc (abort): Accommodate change to set_signal_mask. * select.cc (pselect): Ditto. * exceptions.cc (handle_sigsuspend): Ditto. (ctrl_c_handler): Ditto. (sighold): Ditto. (sigrelse): Ditto. (set_process_mask_delta): Ditto. (_cygtls::call_signal_handler): Ditto. * fhandler_disk_file.cc (fhandler_disk_file::readdir): Return ENMFILE if __handle is not set. Set __handle to NULL when out of files. (fhandler_disk_file::rewinddir): Don't close handle if it's NULL. (fhandler_disk_file::closedir): Ditto. --- winsup/cygwin/exceptions.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'winsup/cygwin/exceptions.cc') diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 1d3d8def7..9ae77f8d2 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -592,7 +592,7 @@ handle_sigsuspend (sigset_t tempmask) { sigset_t oldmask = myself->getsigmask (); // Remember for restoration - set_signal_mask (tempmask, oldmask); + set_signal_mask (tempmask, myself->getsigmask ()); sigproc_printf ("oldmask %p, newmask %p", oldmask, tempmask); pthread_testcancel (); @@ -910,7 +910,7 @@ ctrl_c_handler (DWORD type) extern "C" void __stdcall set_process_mask (sigset_t newmask) { - set_signal_mask (newmask); + set_signal_mask (newmask, myself->getsigmask ()); } extern "C" int @@ -926,7 +926,7 @@ sighold (int sig) mask_sync.acquire (INFINITE); sigset_t mask = myself->getsigmask (); sigaddset (&mask, sig); - set_signal_mask (mask); + set_signal_mask (mask, myself->getsigmask ()); mask_sync.release (); return 0; } @@ -944,7 +944,7 @@ sigrelse (int sig) mask_sync.acquire (INFINITE); sigset_t mask = myself->getsigmask (); sigdelset (&mask, sig); - set_signal_mask (mask); + set_signal_mask (mask, myself->getsigmask ()); mask_sync.release (); return 0; } @@ -973,14 +973,14 @@ set_process_mask_delta () /* Set the signal mask for this process. Note that some signals are unmaskable, as in UNIX. */ extern "C" void __stdcall -set_signal_mask (sigset_t newmask, sigset_t oldmask) +set_signal_mask (sigset_t newmask, sigset_t& oldmask) { mask_sync.acquire (INFINITE); newmask &= ~SIG_NONMASKABLE; sigset_t mask_bits = oldmask & ~newmask; sigproc_printf ("oldmask %p, newmask %p, mask_bits %p", oldmask, newmask, mask_bits); - myself->setsigmask (newmask); // Set a new mask + oldmask = newmask; if (mask_bits) sig_dispatch_pending (true); else @@ -1225,7 +1225,7 @@ _cygtls::call_signal_handler () sig = 0; sigfunc (thissig); incyg++; - set_signal_mask (this_oldmask); + set_signal_mask (this_oldmask, myself->getsigmask ()); if (this_errno >= 0) set_errno (this_errno); } -- cgit v1.2.3