From 3457ce4d88c7f3c9eb4cf2167ba8287108ba3f5b Mon Sep 17 00:00:00 2001 From: Thomas Pfaff Date: Tue, 14 Jan 2003 19:55:42 +0000 Subject: [PATCH] Apply handle_sigsuspend patch --- winsup/cygwin/ChangeLog | 8 +++++++- winsup/cygwin/exceptions.cc | 3 ++- winsup/cygwin/thread.cc | 6 +++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index feda97865..bc40e20a5 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2003-01-10 Thomas Pfaff + + * exceptions.cc (handle_sigsuspend): Add pthread_testcancel call. + Wait for signal and cancellation event. + * thread.cc: Update list of cancellation points. + 2003-01-14 David Huang * fhandler_dsp.cc (fhandler_dsp::ioctl): Add limited support for @@ -107,7 +113,7 @@ (__pthread_mutex_unlock): Return pthread_mutex::UnLock errorcode. (__pthread_mutex_destroy): Call pthread_mutex::Destroy to - destroy mutex. + destroy mutex. (__pthread_mutexattr_settype): Allow errorchecking and recursive types. * thread.h (MUTEX_LOCK_COUNTER_INITIAL): New define. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index e73775f66..877b02d58 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -576,7 +576,8 @@ handle_sigsuspend (sigset_t tempmask) // interested in through. sigproc_printf ("old mask %x, new mask %x", oldmask, tempmask); - WaitForSingleObject (signal_arrived, INFINITE); + pthread_testcancel (); + pthread::cancelable_wait (signal_arrived, INFINITE); set_sig_errno (EINTR); // Per POSIX diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 4f4f1f051..2d154b4a2 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -458,7 +458,7 @@ msgsnd () msync () nanosleep () open () -pause () +*pause () poll () pread () pthread_cond_timedwait () @@ -472,8 +472,8 @@ read () readv () select () *sem_wait () -sigpause () -sigsuspend () +*sigpause () +*sigsuspend () sigtimedwait () sigwait () sigwaitinfo ()