From 0a8a75f3dabaf5c097710c3bb961b67b8ed653b5 Mon Sep 17 00:00:00 2001 From: Kevin Krakauer Date: Thu, 19 Sep 2019 11:35:27 -0700 Subject: 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 --- test/syscalls/BUILD | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test/syscalls/BUILD') diff --git a/test/syscalls/BUILD b/test/syscalls/BUILD index 0135435ea..63e4c63dd 100644 --- a/test/syscalls/BUILD +++ b/test/syscalls/BUILD @@ -320,6 +320,10 @@ syscall_test( test = "//test/syscalls/linux:pty_test", ) +syscall_test( + test = "//test/syscalls/linux:pty_root_test", +) + syscall_test( add_overlay = True, test = "//test/syscalls/linux:pwritev2_test", -- cgit v1.2.3