from functools import partial
import itertools
import sys
-import traceback
+from traceback import format_exception
_threads_wakeups = weakref.WeakKeyDictionary()
class _ExceptionWithTraceback:
def __init__(self, exc, tb):
- tb = traceback.format_exception(type(exc), exc, tb)
- tb = ''.join(tb)
+ tb = ''.join(format_exception(type(exc), exc, tb))
self.exc = exc
self.tb = '\n"""\n%s"""' % tb
def __reduce__(self):
def _on_queue_feeder_error(self, e, obj):
if isinstance(obj, _CallItem):
- tb = traceback.format_exception(type(e), e, e.__traceback__)
+ tb = format_exception(type(e), e, e.__traceback__)
e.__cause__ = _RemoteTraceback('\n"""\n{}"""'.format(''.join(tb)))
work_item = self.pending_work_items.pop(obj.work_id, None)
with self.shutdown_lock:
result_item = result_reader.recv()
is_broken = False
except BaseException as e:
- cause = traceback.format_exception(type(e), e, e.__traceback__)
+ cause = format_exception(type(e), e, e.__traceback__)
elif wakeup_reader in ready:
is_broken = False