From 7641b1c94352b69318c301ab55fa408207092289 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Mon, 4 Aug 2008 03:23:25 +0000 Subject: [PATCH] (backport from trunk r64756) Issue #2113: Fix error in subprocess.Popen if the select system call is interrupted by a signal. --- Lib/subprocess.py | 7 ++++++- Misc/NEWS | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 046f80ca6f8..80be0873301 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -1153,7 +1153,12 @@ class Popen(object): input_offset = 0 while read_set or write_set: - rlist, wlist, xlist = select.select(read_set, write_set, []) + try: + rlist, wlist, xlist = select.select(read_set, write_set, []) + except select.error, e: + if e.args[0] == errno.EINTR: + continue + raise if self.stdin in wlist: # When select has indicated that the file is writable, diff --git a/Misc/NEWS b/Misc/NEWS index 603e84711eb..47cb3ef110a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -130,6 +130,10 @@ Library argument in python 2.5, this broke code that subclassed Popen to include its own poll method. Fixed my moving _deadstate to an _internal_poll method. +- Issue #2113: Fix error in subprocess.Popen if the select system call is + interrupted by a signal. + + Extension Modules -----------------