diff -urp src.old/winsup/cygwin/exceptions.cc src/winsup/cygwin/exceptions.cc --- src.old/winsup/cygwin/exceptions.cc 2002-12-25 21:32:05.000000000 +0100 +++ src/winsup/cygwin/exceptions.cc 2003-01-09 10:19:28.000000000 +0100 @@ -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 -urp src.old/winsup/cygwin/thread.cc src/winsup/cygwin/thread.cc --- src.old/winsup/cygwin/thread.cc 2003-01-09 09:42:28.000000000 +0100 +++ src/winsup/cygwin/thread.cc 2003-01-10 09:42:37.000000000 +0100 @@ -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 ()