diff options
author | Christopher Faylor <me@cgf.cx> | 2006-05-25 05:40:51 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2006-05-25 05:40:51 +0000 |
commit | 3cd94e0c0ae9fce0bc8554c39af34c104778ff42 (patch) | |
tree | c8e1a08c0d546133a04dc5411fdbc2a683e88c5b /winsup/cygwin/debug.cc | |
parent | 38229bcdcf45221857163f39d865d1d5d113a9b7 (diff) | |
download | cygnal-3cd94e0c0ae9fce0bc8554c39af34c104778ff42.tar.gz cygnal-3cd94e0c0ae9fce0bc8554c39af34c104778ff42.tar.bz2 cygnal-3cd94e0c0ae9fce0bc8554c39af34c104778ff42.zip |
* 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.cc | 14 |
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) |