summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorseebye <seebye@users.noreply.github.com>2018-10-25 15:43:30 +0200
committerseebye <seebye@users.noreply.github.com>2018-10-25 15:43:30 +0200
commitf750522ac0394b72e3dfd3e070685169f692094c (patch)
tree49ef3c46c1da28b1104b0d8072b5ddacd5334beb
parent11aedfa81869de15bd4aabd016439a3cf6382a03 (diff)
downloadranger-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.py7
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()