diff --git a/eventlet/twisteds/__init__.py b/eventlet/twisteds/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/eventlet/twisteds/util.py b/eventlet/twisteds/util.py new file mode 100644 index 0000000..1766753 --- /dev/null +++ b/eventlet/twisteds/util.py @@ -0,0 +1,14 @@ +from functools import wraps +from eventlet.support.greenlet import greenlet +from eventlet import greenlib +from eventlet.api import get_hub + +def block_on(deferred): + cur = greenlet.getcurrent() + def cb(value): + greenlib.switch(cur, value) + def eb(err): + greenlib.switch(cur, exc=(err.type, err.value, err.tb)) + deferred.addCallback(cb) + deferred.addErrback(eb) + return get_hub().switch()