diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 70440a4c9..d44ab542a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2009-09-18 Christopher Faylor <me+cygwin@cgf.cx> + + * exceptions.cc (sigpacket::process): Give sigwait() processing + precedence even when a handler is present. + + * syscalls.cc (getpagesize): Change return to 'int'. + 2009-09-16 Christopher Faylor <me+cygwin@cgf.cx> * ntea.c (write_ea): Don't abort if not-samba. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index df0248947..a66644cc7 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1207,11 +1207,12 @@ sigpacket::process () insigwait_mask = false; else if (tls) insigwait_mask = sigismember (&tls->sigwait_mask, si.si_signo); + else if (!(tls = _cygtls::find_tls (si.si_signo))) + insigwait_mask = false; else { - insigwait_mask = !handler && (tls = _cygtls::find_tls (si.si_signo)); - if (tls) - use_tls = tls; + use_tls = tls; + insigwait_mask = true; } if (insigwait_mask) diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 8fc806f88..e86163886 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2056,7 +2056,7 @@ getdtablesize () return cygheap->fdtab.size > OPEN_MAX ? cygheap->fdtab.size : OPEN_MAX; } -extern "C" size_t +extern "C" int getpagesize () { if (!system_info.dwAllocationGranularity)