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
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277