[Python-ideas] Async API

Laurens Van Houtven _ at lvh.cc
Sat Oct 27 17:11:33 CEST 2012

On Fri, Oct 26, 2012 at 7:49 PM, Yury Selivanov <yselivanov.ml at gmail.com>wrote:

> If it is decorated, though, how can I invoke it with a timeout?

The important thing to remember is that the fundamental abstraction at play
here is the deferred. Calling such a decorated function gives you a
deferred. So, you call it with a timeout the same way you timeout (cancel)
any deferred:

d = deferred_returning_expression
reactor.callLater(timeout, d.cancel)

Where deferred_returning_expression can be anything, including calling your
@inlineCallbacks-decorated function.

The way it fits in with all existing stuff, making it look an awful lot
like a lot of existing stuff, is probably why deferred cancellation is one
of the more recent features to make it into twisted: a lot of people did
similar things using the tools that were already there.

> -
> Yury
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20121027/d21e4386/attachment.html>

More information about the Python-ideas mailing list