Re: Threaded pygtk application hangs when accessibility is enabled



Hi Joanie,

Aha! You spotted it. That was one of two places where UI code was not
wrapped in threads_enter()/threads_leave(). Yes, the UI is being
updated outside the main thread, but according to what I've read[1],
so long as any code that updates the UI is wrapped in threads_enter()
or threads_leave() it will work. Of course, depending on the project
that might be a lot of code to wrap. Perhaps in this case using
idle_add() to have the main thread do all the GUI updating work is the
better solution.

Anyway, I'm glad that this was just my mistake rather than an actual
accessibility problem. :) Thanks to all for your time.

On Wed, Feb 10, 2010 at 8:02 PM, Joanmarie Diggs
<joanmarie diggs gmail com> wrote:
> Hi James.
>
> My expertise in threads is almost exclusively being on the receiving end
> of a hang due to this sort of thing, and filing a bug to get someone
> like you to fix it. ;-)
>
> Having said that.... I *think* you might be modifying the GUI outside of
> the main thread when you set the cancel button's state to insensitive in
> kill().
>
> If I do this:
>
>  gobject.idle_add(self.cancel_button.set_sensitive, False)
>
> I'm able to set the button's state without a hang.
>
> Does this help?
> --joanie


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