diff --git a/dangerzone/isolation_provider/qubes.py b/dangerzone/isolation_provider/qubes.py index 36ff5ecf7..01214df4d 100644 --- a/dangerzone/isolation_provider/qubes.py +++ b/dangerzone/isolation_provider/qubes.py @@ -68,7 +68,7 @@ def __init__(self) -> None: def install(self) -> bool: return True - def _convert( + def __convert( self, document: Document, ocr_lang: Optional[str] = None, @@ -124,13 +124,7 @@ def _convert( assert self.proc.stdout is not None os.set_blocking(self.proc.stdout.fileno(), False) - try: - n_pages = read_int(self.proc.stdout, timeout) - except errors.InterruptedConversion: - error_code = p.wait() - # XXX Reconstruct exception from error code - raise exception_from_error_code(error_code) # type: ignore [misc] - + n_pages = read_int(self.proc.stdout, timeout) if n_pages == 0: # FIXME: Fail loudly in that case return False @@ -194,6 +188,19 @@ def print_progress_wrapper(error: bool, text: str, percentage: float) -> None: return success + def _convert( + self, + document: Document, + ocr_lang: Optional[str] = None, + ) -> bool: + try: + return self.__convert(document, ocr_lang) + except errors.InterruptedConversion: + assert self.proc is not None + error_code = self.proc.wait(3) + # XXX Reconstruct exception from error code + raise errors.exception_from_error_code(error_code) # type: ignore [misc] + def get_max_parallel_conversions(self) -> int: return 1