Browse Source

Merge pull request #86 from github/main-thread-future-trace-fix

Fix stacktraces on MainThreadExecutor
pull/87/head
Ross McFarland 9 years ago
committed by GitHub
parent
commit
253e2c612b
1 changed files with 13 additions and 8 deletions
  1. +13
    -8
      octodns/manager.py

+ 13
- 8
octodns/manager.py View File

@ -6,7 +6,7 @@ from __future__ import absolute_import, division, print_function, \
unicode_literals
from StringIO import StringIO
from concurrent.futures import Future, ThreadPoolExecutor
from concurrent.futures import ThreadPoolExecutor
from importlib import import_module
from os import environ
import logging
@ -38,6 +38,17 @@ class _AggregateTarget(object):
return True
class MakeThreadFuture(object):
def __init__(self, func, args, kwargs):
self.func = func
self.args = args
self.kwargs = kwargs
def result(self):
return self.func(*self.args, **self.kwargs)
class MainThreadExecutor(object):
'''
Dummy executor that runs things on the main thread during the involcation
@ -48,13 +59,7 @@ class MainThreadExecutor(object):
'''
def submit(self, func, *args, **kwargs):
future = Future()
try:
future.set_result(func(*args, **kwargs))
except Exception as e:
# TODO: get right stacktrace here
future.set_exception(e)
return future
return MakeThreadFuture(func, args, kwargs)
class Manager(object):


Loading…
Cancel
Save