From a7670c1e828fd3f628aee3c6d77b9c40bf429b0c Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 21 Jul 2001 03:20:01 +0000 Subject: * cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround. * dtable.cc (dtable::dup_worker): Add debugging output. (dtable::vfork_child_dup): Correctly set close_on_exec. * fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if there is no need to get it from the parent. * fhandler_tty.cc (fhandler_tty_common::close): Add debugging output. --- winsup/cygwin/dtable.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/dtable.cc') diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index 4fb726e4d..a5477eb98 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -337,6 +337,7 @@ dtable::dup_worker (fhandler_base *oldfh) newfh->set_close_on_exec_flag (0); MALLOC_CHECK; + debug_printf ("duped '%s' old %p, new %p", oldfh->get_name (), oldfh->get_io_handle (), newfh->get_io_handle ()); return newfh; } @@ -534,7 +535,9 @@ dtable::vfork_child_dup () for (size_t i = 0; i < size; i++) if (not_open (i)) continue; - else if ((newtable[i] = dup_worker (fds[i])) == NULL) + else if ((newtable[i] = dup_worker (fds[i])) != NULL) + newtable[i]->set_close_on_exec (fds[i]->get_close_on_exec ()); + else { res = 0; set_errno (EBADF); @@ -568,6 +571,7 @@ dtable::vfork_child_fixup () { if (!fds_on_hold) return; + debug_printf ("here"); fhandler_base **saveme = fds; fds = fds_on_hold; -- cgit v1.2.3