From 732001cb268683f5b56e251e2964ec5b694a2147 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Tue, 5 Jul 2016 01:08:14 +0300 Subject: devpyshell: python3: flush stdout explicitly Opening text stream in unbuffered mode raises the following exception In Python 3: ValueError: can't have unbuffered text I/O Fixed by leaving std* streams in text mode and flushing stdout explicitly. Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- scripts/oepydevshell-internal.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'scripts') diff --git a/scripts/oepydevshell-internal.py b/scripts/oepydevshell-internal.py index 7761f667ef..31a75ac29f 100755 --- a/scripts/oepydevshell-internal.py +++ b/scripts/oepydevshell-internal.py @@ -29,9 +29,6 @@ if len(sys.argv) != 3: pty = open(sys.argv[1], "w+b", 0) parent = int(sys.argv[2]) -# Don't buffer output by line endings -sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) -sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0) nonblockingfd(pty) nonblockingfd(sys.stdin) @@ -64,6 +61,7 @@ try: # Write a page at a time to avoid overflowing output # d.keys() is a good way to do that sys.stdout.write(i[:4096]) + sys.stdout.flush() i = i[4096:] if sys.stdin in ready: echonocbreak(sys.stdin.fileno()) -- cgit 1.2.3-korg