[Python-Dev] Pythonic concurrency - cooperative MT

Martin Blais blais at furius.ca
Sun Oct 2 23:49:51 CEST 2005


On 10/1/05, Antoine <solipsis at pitrou.net> wrote:
>
> > like this with their "deferred objects", no?  I figure they would
> > need to do something like this too.  I will have to check.)
>
> A Deferred object is just the abstraction of a callback - or, rather, two
> callbacks: one for success and one for failure. Twisted is architected
> around an event loop, which calls your code back when a registered event
> happens (for example when an operation is finished, or when some data
> arrives on the wire). Compared to generators, it is a different way of
> expressing cooperative multi-threading.

So, the question is, in Twisted, if I want to defer on an operation
that is going to block, say I'm making a call to run a database query
that I'm expecting will take much time, and want to yield ("defer")
for other events to be processed while the query is executed, how do I
do that?  As far as I remember the Twisted docs I read a long time ago
did not provide a solution for that.


More information about the Python-Dev mailing list