aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/cygserver/ChangeLog6
-rw-r--r--winsup/cygserver/bsd_mutex.cc4
-rw-r--r--winsup/cygserver/process.cc8
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);