diff options
author | hut <hut@lavabit.com> | 2011-09-29 01:00:38 +0200 |
---|---|---|
committer | hut <hut@lavabit.com> | 2011-09-29 01:00:38 +0200 |
commit | 9d4aa3bd0441c750601eb0df57ee6c32eb8d19c9 (patch) | |
tree | ce52547da88b7e6ec655227bbe8d0c7bd94c089b | |
parent | affbad6ce1e2c8783b0002b617fe0a229546a069 (diff) | |
download | ranger-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.py | 3 | ||||
-rw-r--r-- | ranger/ext/waitpid_no_intr.py | 30 |
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 |