[Python-Dev] Pythonic concurrency - cooperative MT (original) (raw)

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