Hi, I was reading through the conversation and while I am no expert what I realized was that a lot of background networking tasks are executed in separate threads when pyGTK is used. There is a standardized method that needs to be followed when such network processing has to be combined with UI updating. It has been elegantly explained here : http://aruiz.typepad.com/siliconisland/2006/04/threads_on_pygt.html
Best, Hemant On Mon, Apr 28, 2008 at 2:06 PM, Hynek Hanke <[EMAIL PROTECTED]> wrote: > John Finlay napsal(a): > > > The problem is that gtk and by extension pygtk has an event loop, and > > the python speechd api has implemented its own event loop within a thread. > > The speechd protocol is synchronous and sounds similar to RPCs. This event > > loop conflict was in general a problem with RPC programming with GUIs. The > > best solution is to integrate the two event loops using io_add_watch but > > that would entail throwing away the python speechd api and you would not > > have to use threads. This is the course I would take if I was doing your > > project. > > > Hello John, > > please, I'm quite confused with this, because I have no experience with > pygtk. What kind of conflict do you speak about? Do you propose the Speech > Dispatcher Python API to be changed in some way? > > The protocol itself is synchronous TCP protocol except for the events, > which are handled asynchronously. Thus the Python API handles the > communication and calls event callbacks in a separate thread. This should be > totally independent of the pygtk event loop, isn't it? > > > If you want to use the speechd python api you have to make your pygtk > > program threaded > > and that is more than just calling threads_init. > > > What else then needs to be done by a program if it wants to use pygtk in > combination with another library that uses threads? > > Thanks for your help, > Hynek Hanke >
_______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/