On Thu, 16 Jul 2009 00:36:33 +0200, Łukasz Rekucki <lreku...@gmail.com> wrote:
>Hello,
>
>I'm writing a simple chat client using twisted and pygtk. I have a problem
>with a chained deferred not being continued. Here is my call chain:
>
>* MyProtocol.dataReceived -> fires a predefined Deferred [call it A]
>* A.callback1 -> creates a new Deferred B, adds a single callback to it,
>displays a GtkDialog returns B
>* [A stops]
>* dialog exits, I call B.callback(result_id) from the signal callback
>* all callback in B's chains are called
>* program hangs instead calling A.callback2
>
>Is this a thread related problem ? Am I doing something terribly wrong by
>calling a deferred from the gtk thread ?

It sounds like you're doing the right thing.  There is no gtk thread when you
use one of the gtk integration reactors - gtk and Twisted coexist in the same
thread.  So it's just fine to use Twisted APIs from a gtk signal callback.

Perhaps there is an unexpected error occurring.  Do you have a final errback
on your Deferred (one on A in this case would be fine) which logs the error
or otherwise makes it visible?  If not, you have to rely on luck and the
garbage collector to make this report.

Jean-Paul

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to