summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2011-09-29 01:00:38 +0200
committerhut <hut@lavabit.com>2011-09-29 01:00:38 +0200
commit9d4aa3bd0441c750601eb0df57ee6c32eb8d19c9 (patch)
treece52547da88b7e6ec655227bbe8d0c7bd94c089b
parentaffbad6ce1e2c8783b0002b617fe0a229546a069 (diff)
downloadranger-9d4aa3bd0441c750601eb0df57ee6c32eb8d19c9.tar.gz
core.runner: replaced waitpid_no_intr by process.wait()
with waitpid_no_intr, the returncode attribute of the returned process
was bugged and returned always None.
-rw-r--r--ranger/core/runner.py3
-rw-r--r--ranger/ext/waitpid_no_intr.py30
2 files changed, 1 insertions, 32 deletions
diff --git a/ranger/core/runner.py b/ranger/core/runner.py
index 53bede29..4df5fe6f 100644
--- a/ranger/core/runner.py
+++ b/ranger/core/runner.py
@@ -34,7 +34,6 @@ p: redirect output to the pager
 import os
 import sys
 from subprocess import Popen, PIPE
-from ranger.ext.waitpid_no_intr import waitpid_no_intr
 
 
 ALLOWED_FLAGS = 'sdpwcSDPWC'
@@ -199,7 +198,7 @@ class Runner(object):
 				self._log("Failed to run: " + str(action))
 			else:
 				if context.wait:
-					waitpid_no_intr(process.pid)
+					process.wait()
 				if wait_for_enter:
 					press_enter()
 		finally:
diff --git a/ranger/ext/waitpid_no_intr.py b/ranger/ext/waitpid_no_intr.py
deleted file mode 100644
index 12fbcbce..00000000
--- a/ranger/ext/waitpid_no_intr.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from errno import EINTR
-from os import waitpid
-
-def waitpid_no_intr(pid):
-	"""catch interrupts which occur while using os.waitpid"""
-	while True:
-		try:
-			return waitpid(pid, 0)
-		except KeyboardInterrupt:
-			continue
-		except OSError as e:
-			if e.errno == EINTR:
-				continue
-			else:
-				raise