File objects for stdin, stdout and stderr by default are opened in bynary mode
and require a byte string literal b'' as iter() sentinel.
We have opened the file objects for stdout and stderr in text mode using the
"universal_newlines=True" argument in subprocess.Popen() so the correct iter()
sentinel is the string literal ''.
Using b'' as sentinel is wrong and floods the queue with void lines.
Also move in kill_process() the closing of the stdout pipe.
Porting of a couple of my commits from official fishtest.
File objects for stdin, stdout and stderr by default are opened in bynary mode and require a byte string literal b'' as iter() sentinel.
We have opened the file objects for stdout and stderr in text mode using the "universal_newlines=True" argument in subprocess.Popen() so the correct iter() sentinel is the string literal ''. Using b'' as sentinel is wrong and floods the queue with void lines.
Also move in kill_process() the closing of the stdout pipe.
Porting of a couple of my commits from official fishtest.