diff options
author | Kevin Krakauer <krakauer@google.com> | 2019-09-19 11:35:27 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-09-19 11:36:47 -0700 |
commit | 0a8a75f3dabaf5c097710c3bb961b67b8ed653b5 (patch) | |
tree | 4f28d2550c996b8c10d06ebc511ff0433f47b5f7 /third_party | |
parent | 28f431335b182519f420e026edac8b7bcfd2a40a (diff) |
Job control: controlling TTYs and foreground process groups.
Adresses a deadlock with the rolled back change:
https://github.com/google/gvisor/commit/b6a5b950d28e0b474fdad160b88bc15314cf9259
Creating a session from an orphaned process group was causing a lock to be
acquired twice by a single goroutine. This behavior is addressed, and a test
(OrphanRegression) has been added to pty.cc.
Implemented the following ioctls:
- TIOCSCTTY - set controlling TTY
- TIOCNOTTY - remove controlling tty, maybe signal some other processes
- TIOCGPGRP - get foreground process group. Also enables tcgetpgrp().
- TIOCSPGRP - set foreground process group. Also enabled tcsetpgrp().
Next steps are to actually turn terminal-generated control characters (e.g. C^c)
into signals to the proper process groups, and to send SIGTTOU and SIGTTIN when
appropriate.
PiperOrigin-RevId: 270088599
Diffstat (limited to 'third_party')
0 files changed, 0 insertions, 0 deletions