summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fork.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r--winsup/cygwin/fork.cc18
1 files changed, 3 insertions, 15 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 477d85c0f..5671d1c33 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -719,7 +719,7 @@ vfork ()
vf->ctty = myself->ctty;
vf->sid = myself->sid;
vf->pgid = myself->pgid;
- vf->fhctty = cygheap->ctty;
+ cygheap->ctty_on_hold = cygheap->ctty;
vf->open_fhs = cygheap->open_fhs;
int res = cygheap->fdtab.vfork_child_dup () ? 0 : -1;
debug_printf ("%d = vfork()", res);
@@ -739,20 +739,8 @@ vfork ()
myself->ctty = vf->ctty;
myself->sid = vf->sid;
myself->pgid = vf->pgid;
- termios_printf ("cygheap->ctty %p, vf->fhctty %p", cygheap->ctty, vf->fhctty);
- if (cygheap->ctty != vf->fhctty)
- {
- vf->fhctty->close ();
- if (vf->pid <= 0)
- {
- if (vf->ctty)
- vf->fhctty->close ();
- cygheap->ctty = vf->fhctty;
- }
- }
-
- if (vf->pid <= 0)
- cygheap->open_fhs = vf->open_fhs;
+ termios_printf ("cygheap->ctty %p, cygheap->ctty_on_hold %p", cygheap->ctty, cygheap->ctty_on_hold);
+ cygheap->open_fhs = vf->open_fhs;
if (vf->pid < 0)
{