summaryrefslogtreecommitdiffstats
path: root/winsup/cygserver/process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygserver/process.cc')
-rw-r--r--winsup/cygserver/process.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/winsup/cygserver/process.cc b/winsup/cygserver/process.cc
index 6f8f40ea5..eb7e0940d 100644
--- a/winsup/cygserver/process.cc
+++ b/winsup/cygserver/process.cc
@@ -68,9 +68,11 @@ process::process (const pid_t cygpid, const DWORD winpid, HANDLE signal_arrived)
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;
+ {
+ system_printf ("error getting signal_arrived to server (%lu)",
+ GetLastError ());
+ _signal_arrived = INVALID_HANDLE_VALUE;
+ }
}
InitializeCriticalSection (&_access);
debug ("initialized (%lu)", _cygpid);
@@ -80,7 +82,8 @@ process::~process ()
{
debug ("deleting (%lu)", _cygpid);
DeleteCriticalSection (&_access);
- CloseHandle (_signal_arrived);
+ if (_signal_arrived && _signal_arrived != INVALID_HANDLE_VALUE)
+ CloseHandle (_signal_arrived);
CloseHandle (_hProcess);
}