Twisted: 1 thread in the reactor pattern

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Sat Sep 26 10:22:31 EDT 2009


On 25 Sep, 05:25 am, jacopo.pecci at gmail.com wrote:
>On Sep 24, 7:54 pm, exar... at twistedmatrix.com wrote:
>>On 07:10 am, jacopo.pe... at gmail.com wrote:
>> >On Sep 23, 5:57 pm, exar... at twistedmatrix.com wrote:
>> >[snip]
>[snip]
>>
>>If you have a function that takes 5 minutes to run, then you're 
>>blocking
>>the reactor thread for 5 minutes and no other events are serviced 
>>until
>>the function finishes running.
>>
>>You have to avoid blocking the reactor thread if you want other events
>>to continue to be serviced.  There are various strategies for avoiding
>>blocking.  Different strategies are appropriate for different kinds of
>>blocking code.
>>
>>Jean-Paul- Hide quoted text -
>>
>>- Show quoted text -
>
>Even if the server is engaged in a 5 minutes processing other arriving
>requests of callRemote() are queued and  Deferreds are returned
>immediately.

Nope, they're not.  The bytes representing the new requests sit in the 
socket buffer until the function finishes processing and the reactor 
gets an opportunity to read them.
>
>Could you suggest me any doc to better understand?

If you haven't read 
http://twistedmatrix.com/projects/core/documentation/howto/async.html 
yet, that may be a good idea.

Jean-Paul



More information about the Python-list mailing list