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/

Reply via email to