Comments
Patch
@@ -209,7 +209,7 @@
try:
result = fn(**pycompat.strkwargs(args))
except Exception:
- f.set_exception_info(*sys.exc_info()[1:])
+ pycompat.future_set_exception_info(f, sys.exc_info()[1:])
else:
f.set_result(result)
@@ -234,14 +234,14 @@
batchable = fn.batchable(fn.__self__,
**pycompat.strkwargs(args))
except Exception:
- f.set_exception_info(*sys.exc_info()[1:])
+ pycompat.future_set_exception_info(f, sys.exc_info()[1:])
return
# Encoded arguments and future holding remote result.
try:
encodedargs, fremote = next(batchable)
except Exception:
- f.set_exception_info(*sys.exc_info()[1:])
+ pycompat.future_set_exception_info(f, sys.exc_info()[1:])
return
requests.append((command, encodedargs))
@@ -304,7 +304,7 @@
try:
result = next(batchable)
except Exception:
- f.set_exception_info(*sys.exc_info()[1:])
+ pycompat.future_set_exception_info(f, sys.exc_info()[1:])
else:
f.set_result(result)
@@ -28,6 +28,9 @@
import xmlrpclib
from .thirdparty.concurrent import futures
+
+ def future_set_exception_info(f, exc_info):
+ f.set_exception_info(*exc_info)
else:
import concurrent.futures as futures
import http.cookiejar as cookielib
@@ -37,6 +40,9 @@
import socketserver
import xmlrpc.client as xmlrpclib
+ def future_set_exception_info(f, exc_info):
+ f.set_exception(exc_info[0])
+
empty = _queue.Empty
queue = _queue.Queue
@@ -184,7 +184,7 @@
try:
result = fn(**args)
except Exception:
- f.set_exception_info(*sys.exc_info()[1:])
+ pycompat.future_set_exception_info(f, sys.exc_info()[1:])
else:
f.set_result(result)
@@ -754,7 +754,8 @@
try:
result.append(decoder.decode())
except Exception:
- f.set_exception_info(*sys.exc_info()[1:])
+ pycompat.future_set_exception_info(
+ f, sys.exc_info()[1:])
continue
else:
result.append(meta['data'])