Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-05-25 09:40:51 +0400
committerChristopher Faylor <me@cgf.cx>2006-05-25 09:40:51 +0400
commit3cd94e0c0ae9fce0bc8554c39af34c104778ff42 (patch)
treec8e1a08c0d546133a04dc5411fdbc2a683e88c5b /winsup/cygwin/debug.cc
parent38229bcdcf45221857163f39d865d1d5d113a9b7 (diff)
* debug.h (ModifyHandle): Define new macro.
(modify_handle): Declare new function. * debug.cc (modify_handle): Define new function. * fhandler.h (fhandler_base::fork_fixup): Change return value from void to bool. * fhandler.cc (fhandler_base::fork_fixup): Return true if fork fixup has been done. * pipe.cc (fhandler_pipe::set_close_on_exec): Set inheritance of protected handle via ModifyHandle if DEBUGGING. (fhandler_pipe::fixup_after_fork): Protect guard handle if fork fixup has been done.
Diffstat (limited to 'winsup/cygwin/debug.cc')
-rw-r--r--winsup/cygwin/debug.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/winsup/cygwin/debug.cc b/winsup/cygwin/debug.cc
index 4e22afd5d..004ddec0f 100644
--- a/winsup/cygwin/debug.cc
+++ b/winsup/cygwin/debug.cc
@@ -114,6 +114,20 @@ newh ()
return NULL;
}
+void __stdcall
+modify_handle (const char *func, int ln, HANDLE h, const char *name, bool inh)
+{
+ handle_list *hl = find_handle (h);
+ if (!hl)
+ {
+ system_printf ("%s:%d handle %s<%p> not found", func, ln, name, h);
+ return;
+ }
+ hl->next->inherited = inh;
+ debug_printf ("%s:%d set handle %s<%p> inheritance flag to %d", func, ln,
+ name, h, inh);
+}
+
/* Add a handle to the linked list of known handles. */
void __stdcall
add_handle (const char *func, int ln, HANDLE h, const char *name, bool inh)