diff options
-rw-r--r-- | winsup/cygserver/ChangeLog | 6 | ||||
-rw-r--r-- | winsup/cygserver/bsd_mutex.cc | 4 | ||||
-rw-r--r-- | winsup/cygserver/process.cc | 8 |
3 files changed, 14 insertions, 4 deletions
diff --git a/winsup/cygserver/ChangeLog b/winsup/cygserver/ChangeLog index 9b4ed31..9bf453a 100644 --- a/winsup/cygserver/ChangeLog +++ b/winsup/cygserver/ChangeLog @@ -1,3 +1,9 @@ +2005-04-01 Corinna Vinschen <corinna@vinschen.de> + + * bsd_mutex.cc (_msleep): Whitespace fix. + * process.cc (process::process): Handle invalid signal_arrived values + more gracefully. + 2004-12-30 Corinna Vinschen <corinna@vinschen.de> * bsd_mutex.cc: Include limits.h. diff --git a/winsup/cygserver/bsd_mutex.cc b/winsup/cygserver/bsd_mutex.cc index 2721748..82ce4bf 100644 --- a/winsup/cygserver/bsd_mutex.cc +++ b/winsup/cygserver/bsd_mutex.cc @@ -1,6 +1,6 @@ /* bsd_mutex.cc - Copyright 2003, 2004 Red Hat Inc. + Copyright 2003, 2004, 2005 Red Hat Inc. This file is part of Cygwin. @@ -236,7 +236,7 @@ _msleep (void *ident, struct mtx *mtx, int priority, if ((priority & PCATCH) && td->client->signal_arrived () != INVALID_HANDLE_VALUE) obj_cnt = 4; - + switch (WaitForMultipleObjects (obj_cnt, obj, FALSE, timo ?: INFINITE)) { case WAIT_OBJECT_0: /* wakeup() has been called. */ diff --git a/winsup/cygserver/process.cc b/winsup/cygserver/process.cc index e03370d..6f8f40e 100644 --- a/winsup/cygserver/process.cc +++ b/winsup/cygserver/process.cc @@ -1,6 +1,6 @@ /* process.cc - Copyright 2001, 2002, 2003, 2004 Red Hat Inc. + Copyright 2001, 2002, 2003, 2004, 2005 Red Hat Inc. Written by Robert Collins <rbtcollins@hotmail.com> @@ -60,13 +60,17 @@ process::process (const pid_t cygpid, const DWORD winpid, HANDLE signal_arrived) else debug_printf ("got handle %p for new cache process %d(%lu)", _hProcess, _cygpid, _winpid); - if (signal_arrived != INVALID_HANDLE_VALUE) + if (!signal_arrived) + system_printf ("signal_arrived NULL for process %d(%lu)", + _cygpid, _winpid); + else if (signal_arrived != INVALID_HANDLE_VALUE) { if (!DuplicateHandle (_hProcess, signal_arrived, GetCurrentProcess (), &_signal_arrived, 0, FALSE, DUPLICATE_SAME_ACCESS)) system_printf ("error getting signal_arrived to server (%lu)", GetLastError ()); + _signal_arrived = INVALID_HANDLE_VALUE; } InitializeCriticalSection (&_access); debug ("initialized (%lu)", _cygpid); |