diff options
Diffstat (limited to 'module/plugins')
-rw-r--r-- | module/plugins/internal/UnRar.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/module/plugins/internal/UnRar.py b/module/plugins/internal/UnRar.py index 9aff4bb8e..44c02b686 100644 --- a/module/plugins/internal/UnRar.py +++ b/module/plugins/internal/UnRar.py @@ -18,10 +18,26 @@ """ import os +import sys from os.path import join from glob import glob +import subprocess from subprocess import Popen, PIPE +def _cleanup(): + for inst in subprocess._active[:]: + res = inst._internal_poll(_deadstate=sys.maxint) + if res is not None and res >= 0: + try: + subprocess._active.remove(inst) + except ValueError: + # This can happen if two threads create a new Popen instance. + # It's harmless that it was already removed, so ignore. + pass + +# cleanup patch for older python versions +subprocess._cleanup = _cleanup() + from module.plugins.hooks.ExtractArchive import AbtractExtractor from module.utils import save_join, decode |