diff options
author | seebye <seebye@users.noreply.github.com> | 2018-10-25 15:43:30 +0200 |
---|---|---|
committer | seebye <seebye@users.noreply.github.com> | 2018-10-25 15:43:30 +0200 |
commit | f750522ac0394b72e3dfd3e070685169f692094c (patch) | |
tree | 49ef3c46c1da28b1104b0d8072b5ddacd5334beb | |
parent | 11aedfa81869de15bd4aabd016439a3cf6382a03 (diff) | |
download | ranger-f750522ac0394b72e3dfd3e070685169f692094c.tar.gz |
ueberzug: ensure the process's death with rangers end
Wait for ueberzug to finish within a second if the timeout occurs send a SIGKILL
-rw-r--r-- | ranger/ext/img_display.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ranger/ext/img_display.py b/ranger/ext/img_display.py index 2cbf2f94..cd6d6198 100644 --- a/ranger/ext/img_display.py +++ b/ranger/ext/img_display.py @@ -21,6 +21,7 @@ import struct import sys import warnings import json +import threading from subprocess import Popen, PIPE import termios @@ -720,4 +721,10 @@ class UeberzugImageDisplayer(ImageDisplayer): def quit(self): if (self.is_initialized and self.process.poll() is None and not self.process.stdin.closed): + timer = threading.Timer(1, self.process.kill, []) self.process.stdin.close() + try: + timer.start() + _ = self.process.communicate() + finally: + timer.cancel() |