Hi all, Why does loop.connect_read_pipe not support the pipes that openpty() creates, but is does for os.pipe()
master, slave = os.openpty() shell_out = io.open(master, 'rb', 0) transport, protocol = yield from loop.connect_read_pipe(MyProtocol, shell_out) In unix_events.py, there's the following check that fails. if not (stat.S_ISFIFO(mode) or stat.S_ISSOCK(mode)): I think it should be something like this: if not (stat.S_ISFIFO(mode) or stat.S_ISSOCK(mode) or stat.S_ISCHR(mode)): I tried this patch and it resolves the issue for me. Correct me if I'm wrong, but I don't think there is any reason to block character devices like this. Actually they're not that different from a unix pipe. For those interested in my use case: I'm building something like "tmux" or "gnu screen", but in Pure Python. I use the "pyte" library as output interpreter, but will write a custom renderer. Calling the subprocess_exec wrapper does not work, because it uses normal pipes, while I want the programs that run to be aware that they are running in a real pseudo terminal. Cheers, Jonathan
