diff options
Diffstat (limited to 'sysdeps/mach/hurd/spawni.c')
-rw-r--r-- | sysdeps/mach/hurd/spawni.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c index bccdd013bf..f19b688411 100644 --- a/sysdeps/mach/hurd/spawni.c +++ b/sysdeps/mach/hurd/spawni.c @@ -390,19 +390,6 @@ retry: if (!err && (flags & POSIX_SPAWN_SETPGROUP) != 0) err = __proc_setpgrp (proc, new_pid, attrp->__pgrp); - /* Set the controlling terminal. */ - if (!err && (flags & POSIX_SPAWN_TCSETPGROUP) != 0) - { - pid_t pgrp; - /* Check if it is possible to avoid an extra syscall. */ - if ((attrp->__flags & POSIX_SPAWN_SETPGROUP) != 0 && attrp->__pgrp != 0) - pgrp = attrp->__pgrp; - else - err = __proc_getpgrp (proc, new_pid, &pgrp); - if (!err) - err = __tcsetpgrp (attrp->__ctty_fd, pgrp); - } - /* Set the effective user and group IDs. */ if (!err && (flags & POSIX_SPAWN_RESETIDS) != 0) { @@ -643,6 +630,19 @@ retry: case spawn_do_closefrom: err = do_closefrom (action->action.closefrom_action.from); break; + + case spawn_do_tcsetpgrp: + { + pid_t pgrp; + /* Check if it is possible to avoid an extra syscall. */ + if ((attrp->__flags & POSIX_SPAWN_SETPGROUP) + != 0 && attrp->__pgrp != 0) + pgrp = attrp->__pgrp; + else + err = __proc_getpgrp (proc, new_pid, &pgrp); + if (!err) + err = __tcsetpgrp (action->action.setpgrp_action.fd, pgrp); + } } if (err) |