On 17 Apr 2007 13:32:52 GMT, Antoon Pardon <[EMAIL PROTECTED]> wrote:
>On 2007-04-17, Hendrik van Rooyen <[EMAIL PROTECTED]> wrote:
> [snip]

>> Not sure I understand this -  it sounds vaguely incestous to me.
>> I normally use a GUI with two queues,  one for input, one for
>> output, to two threads that front end two named pipes to
>> the next process - I try to avoid more than one thing reading or
>> writing to one end of a queue or a pipe, so the dataflow diagram
>> for my stuff always looks like a TinkerToy...
>
>The problem is that sometimes the gui thread has something to show
>too. With the added problem that the code wanting to show something
>doesn't know when it is executing the gui thread or an other. So
>it is very difficult to avoid the gui thread putting things on the
>queue. But since the gui thread is the single reader, it will dead
>lock if the queue happens to be full at the moment the gui thread
>want to add another item.
>

This is pretty easily solved:

    def sendToGUI(event):
        if isInGUIThread():
            gui.scheduleCall(event)
        else:
            guiQueue.put(event)

Jean-Paul
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to