diff options
author | Zac Medico <zmedico@gentoo.org> | 2021-09-19 23:44:36 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2021-09-20 00:07:22 -0700 |
commit | 2f474767eaf3b042bea31bc524281e0841cb271b (patch) | |
tree | 39f63e2ad4ddfda014be84c8c93eac08dfe7afc4 | |
parent | _safe_loop: fix python3.10 DeprecationWarning (diff) | |
download | portage-2f474767.tar.gz portage-2f474767.tar.bz2 portage-2f474767.zip |
ExtendedFuture: Fix python3.10 DeprecationWarning
DeprecationWarning: There is no current event loop
Signed-off-by: Zac Medico <zmedico@gentoo.org>
-rw-r--r-- | lib/portage/util/futures/extendedfutures.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/portage/util/futures/extendedfutures.py b/lib/portage/util/futures/extendedfutures.py index 6aa3ebbe8..c23feafb5 100644 --- a/lib/portage/util/futures/extendedfutures.py +++ b/lib/portage/util/futures/extendedfutures.py @@ -10,7 +10,13 @@ __all__ = ( "InvalidStateError", ) -from portage.util.futures.futures import Future, InvalidStateError, CancelledError +import concurrent.futures +from concurrent.futures import Future, CancelledError + +try: + from concurrent.futures import InvalidStateError +except ImportError: + from portage.util.futures.futures import InvalidStateError # Create our one time settable unset constant UNSET_CONST = Future() @@ -62,9 +68,21 @@ class ExtendedFuture(Future): default = self.default_result if default is not UNSET_CONST.result(): try: - data = super(ExtendedFuture, self).result() + data = self.result() except InvalidStateError: data = default else: - data = super(ExtendedFuture, self).result() + data = self.result() return data + + def exception(self): + try: + return super(ExtendedFuture, self).exception(timeout=0) + except concurrent.futures.TimeoutError: + raise InvalidStateError + + def result(self): + try: + return super(ExtendedFuture, self).result(timeout=0) + except concurrent.futures.TimeoutError: + raise InvalidStateError |