[Twisted-Python] Callback blocked in event loop

MattP twisted-list at zorinholdings.com
Fri Nov 10 09:40:48 MST 2006


Oh my - how could I have been so daft? I'll put it down to Friday - 
thankyou very much Jean-Paul
for opening my eyes!

Cheers
Matthew

On Fri, 10 Nov 2006, Jean-Paul Calderone 
wrote:

> On Fri, 10 Nov 2006 15:24:51 +0000 (GMT), Matt P 
> <twisted-list at zorinholdings.com> wrote:
>> 
>> Hello
>> 
>> I've got a bit of an issue that someone may recognise and bea ble to set me 
>> straight!
>>
>>  [snip]
>> 
>> Events may be raised in the server, as a twisted.pb call to fireEvent on 
>> the server and also come in on a separate thread (from a JMS message queue) 
>> and get posted onto the DefferedQueue for events.
>> 
>> If events are raised in the server, remote listeners get their 
>> pb.Referenceable callback immediately. It works as I would like.
>>
>>  [snip]
>> 
>> So, only in the case where teh DeferredQueue.put(...) is called from 
>> another thread do I have the problem. I can't see why the blocking. Does 
>> this behaviour make sense to anyone!?
>
> DeferredQueue isn't threadsafe.  Instead of calling put() directly from a
> non-reactor thread, call it with reactor.callFromThread:
>
>
>   reactor.callFromThread(q.put, value)
>
> Jean-Paul
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>

----------------------------------------------
Matthew Pontefract
http://www.zorinholdings.com/
----------------------------------------------




More information about the Twisted-Python mailing list