aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2005-04-01 15:35:47 +0000
committerCorinna Vinschen <corinna@vinschen.de>2005-04-01 15:35:47 +0000
commitc9f545e20fe2994d9266d463a184731505975e84 (patch)
tree60608d4999eb1104681cd6c962409b82513f0fdd /winsup
parentd0bed66e453ce6263ed9906e85d23c9fe857cdbc (diff)
downloadnewlib-c9f545e20fe2994d9266d463a184731505975e84.zip
newlib-c9f545e20fe2994d9266d463a184731505975e84.tar.gz
newlib-c9f545e20fe2994d9266d463a184731505975e84.tar.bz2
* bsd_mutex.cc (_msleep): Whitespace fix.
* process.cc (process::process): Handle invalid signal_arrived values more gracefully.
Diffstat (limited to 'winsup')
-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);