Issue 36603: should pty.openpty() set pty/tty inheritable? (original) (raw)
pty.openpty(), on systems with a working os.openpty() / openpty(3) executes:
if (openpty(&master_fd, &slave_fd, NULL, NULL, NULL) != 0)
goto posix_error;
if (_Py_set_inheritable(master_fd, 0, NULL) < 0)
goto error;
if (_Py_set_inheritable(slave_fd, 0, NULL) < 0)
goto error;
where as on systems where this is fails it instead executes:
master_fd, slave_name = _open_terminal()
slave_fd = slave_open(slave_name)
i.e., result = os.open(tty_name, os.O_RDWR)
return master_fd, slave_fd
where os.open() was "Changed in version 3.4: The new file descriptor is now non-inheritable."
(personally I'd deprecate pty.openpty(), but that is just me)