Yep, this was the problem: gtk before 1.2.5 did not call threads_(leave/enter) in 
gtk_main_iteration.

thanks,
- Scott

>  
>  There were some threading bugs in some early versions of gtk+
>  (specifically with events_pending() and mainiteration()). You should
>  really use gtk+ >= 1.2.4.  I should have this check in the configure
>  script.
>  
>  The other possible difference between the mandrake is if one was compiled
>  with threading and the other wasn't.
>  
>  James.
>  
>  --
>  Email: [EMAIL PROTECTED]
>  WWW:   http://www.daa.com.au/~james/
>  
>  
>  On Sun, 27 Feb 2000, Scott Bender wrote:
>  
>  > 
>  > Yeah, this is a strange one. I have one linux box (Mandrake 7) which does not 
>need the thread_enter/leave sutff,
>  > and another (RedHat 6.0) that does need it. They're both running the same pygtk 
>(0.6.3), but different versions of
>  > gtk, the Madrake box has 1.2.6, the RedHat box has 1.2.1. I'm guessing that this 
>is the reason.
>  > 
>  > - Scott
>  > 
>  > "Mitch Chapman" wrote:  
>  > >  
>  > >  Here's an excerpt from a module of miscellaneous pygtk functions.
>  > >  It shows three platform-dependent implementations of an update()
>  > >  function.  update() is used e.g. to update a progress bar
>  > >  in the middle of a time-consuming operation -- it's analogous to
>  > >  the Tkinter update() function.
>  > >  
>  > >  I haven't bothered looking at Gtk+ or pygtk sources in order to figure 
>  > >  out why you need threads_(enter|leave) on Solaris but not on Linux.
>  > >  If somebody could explain the difference I'd be grateful.
>  > >  
>  > >  One last note:  This code was tested w. pygtk 0.6.2, on all
>  > >  three platforms.
>  > >  
>  > >  --
>  > >  Mitch
>  > >  [EMAIL PROTECTED]
>  > 
>  > >  
>  > >  Mitch Chapman wrote:
>  > >  > 
>  > >  > On Sat, 26 Feb 2000, Scott Bender wrote:
>  > >  > > Actually, the hang came after my timeout function completed. It was 
>calling mainiteration(FALSE) to
>  > >  > > update a progress bar, which was causing the hang. Anyone know why?
>  > >  > >
>  > >  > > thanks,
>  > >  > > - Scott
>  > >  > 
>  > >  > I've seen this recently.  The behavior varies depending on what version
>  > >  > of Gtk+ you're running with, and on what operating system.
>  > >  > 
>  > >  > The basic problem is that, on some platforms, even w. Gtk+ 1.2.6,
>  > >  > you need to surround calls to gtk.events_pending() and
>  > >  > gtk.mainiteration() with calls to gtk.threads_leave() and
>  > >  > gtk.threads_enter(). On others (e.g. Solaris) you *shouldn't* do so.
>  > >  To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]
>  > >  
>  > 
>  > To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]
>  > 
>  
>  To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]
>  

To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]

Reply via email to