def async_method(m): """Converts a generator method into an async one.""" m = futures.wrap_async(m) def f(self, *args, **kwargs): return m(self, self.loop, *args, **kwargs) return f
def async_handler(m): """Converts a generator method into a fire-and-forget async one.""" m = futures.wrap_async(m) def f(self, *args, **kwargs): return m(self, self.loop, *args, **kwargs) return f
def async_handler(m): # TODO: docstring m = futures.wrap_async(m) def f(self, *args, **kwargs): fut = m(self, self.loop, *args, **kwargs) def done(fut): try: fut.result() except BaseException: traceback.print_exc(file=sys.__stderr__) fut.add_done_callback(done) return f