diff options
Diffstat (limited to 'winsup/cygwin/debug.cc')
-rw-r--r-- | winsup/cygwin/debug.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/debug.cc b/winsup/cygwin/debug.cc index 004ddec0f..5e92d40a1 100644 --- a/winsup/cygwin/debug.cc +++ b/winsup/cygwin/debug.cc @@ -166,6 +166,7 @@ add_handle (const char *func, int ln, HANDLE h, const char *name, bool inh) hl->pid = GetCurrentProcessId (); cygheap->debug.endh->next = hl; cygheap->debug.endh = hl; + SetHandleInformation (h, HANDLE_FLAG_PROTECT_FROM_CLOSE, HANDLE_FLAG_PROTECT_FROM_CLOSE); debug_printf ("protecting handle '%s'(%p), inherited flag %d", hl->name, hl->h, hl->inherited); } @@ -234,9 +235,10 @@ close_handle (const char *func, int ln, HANDLE h, const char *name, bool force) if (!mark_closed (func, ln, h, name, force)) return false; + SetHandleInformation (h, HANDLE_FLAG_PROTECT_FROM_CLOSE, 0); ret = CloseHandle (h); -#if 0 /* Uncomment to see CloseHandle failures */ +#if 1 /* Uncomment to see CloseHandle failures */ if (!ret) small_printf ("CloseHandle(%s) failed %s:%d\n", name, func, ln); #endif |