gevent.py 502 B

123456789101112131415161718192021
  1. from __future__ import absolute_import
  2. from gevent.event import Event # type: ignore
  3. import gevent # type: ignore
  4. class GeventScheduler(object):
  5. def call(self, fn):
  6. # print fn
  7. gevent.spawn(fn)
  8. def wait(self, promise, timeout=None):
  9. e = Event()
  10. def on_resolve_or_reject(_):
  11. e.set()
  12. promise._then(on_resolve_or_reject, on_resolve_or_reject)
  13. waited = e.wait(timeout)
  14. if not waited:
  15. raise Exception("Timeout")