[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Pygtk does not play nicely with speech-dispatcher

From: Hemant Goyal
Subject: Pygtk does not play nicely with speech-dispatcher
Date: Fri, 13 Jun 2008 14:26:57 +0530


I am working on finding a fix for the problem that James described. We plan
to use the speechd API in OLPC and developers in the OLPC community have
advised that it would be preferable to avoid the threading approach in the
longer run.

We are trying to bye-pass the thread that speechd creates and instead add a
watch on the socket using gobject.io_add_watch. So whenever an input event
is observed on the socket we read the socket instead of reading the socket
in a loop within the thread.

The code would look something like this (thanks tomeu!):

if use_gobject:
            self._communication_thread = None
            import gobject
            gobject.io_add_watch(self._socket, gobject.IO_IN,
self.__socket_read_cb)  #if input activity on the socket is observed call
            self._communication_thread = \
                threading.Thread(target=self._communication, kwargs={},
                                 name="SSIP client communication thread")

The problem that I am facing at the moment is that the existence of the
_communication_thread is tested elsewhere, and I am not able to bye-pass
this test.

 # TODO: This check is dumb but seems to work.  The main thread
        # hangs without it, when the Speech Dispatcher connection is lost.
        if not self._communication_thread.isAlive():
            raise SSIPCommunicationError

Could someone in the speechd community explain what is happening in this
test and why it is important?

-------------- next part --------------
An HTML attachment was scrubbed...

reply via email to

[Prev in Thread] Current Thread [Next in Thread]