def wrapper(*args, **kwargs): from twisted.internet import reactor event = coros.event() def wrapped_func(): try: result = func(*args, **kwargs) except: event.send_exception(*sys.exc_info()) else: event.send(result) if threadable.isInIOThread(): callInGreenThread(wrapped_func) else: reactor.callFromThread(callInGreenThread, wrapped_func) return event
def _wrap_func(*args, **kwargs): return callInGreenThread(func, *args, **kwargs)
def wrapper(*args, **kwargs): from twisted.internet import reactor if threadable.isInIOThread(): callInGreenThread(func, *args, **kwargs) else: reactor.callFromThread(callInGreenThread, func, *args, **kwargs)