[gtk+osx] Re: Gtk-osx-developer digest, Vol 1 #141 - 1 msg

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[gtk+osx] Re: Gtk-osx-developer digest, Vol 1 #141 - 1 msg

> >When user presses a button at my app, it starts a long operation. But I
> >allow UI to work (update stat and other information). Linux version of my
> >app calls following code every few milliseconds:
> >
> >while(gtk_events_pending()) gtk_main_iteration();
> >
> >That works on Linux but does not work with GTK-OSX. Can you advice

> >
> >Looking forward to hearing from you soon,
> >
> >Best regards,
> >Igor
> >
> >
> >
> Sounds like you may want to use fork() and leave one process or thread
> in that loop and kill it when you no longer need it. An even better
> solution would be a fork() in conjunction with a semaphore.
The problem that my operation must show information at GtkDialog. GTK is not
thread-safe, so I cannot access GtkDialog safely from another thread. When I
do the operation  at the main thread, GUI locks up. To allow UI be updated I

while(gtk_events_pending()) gtk_main_iteration();

every second. That works on Linux but with MAC-OSX  gtk_events_pending()
always returns FALSE. I tried 3 ways:

1. while(gtk_events_pending()) gtk_main_iteration();

2. while (g_main_iteration(FALSE)) ;

3. while (gdk_events_pending()) {
         GdkEvent* ev = gdk_event_get(); // This does not block
          if (ev) { // Sometimes there is a NULL event, why?
     } // while

None of above work. Can you advice me something?

Looking forward to hearing from you soon,

Best regards,

SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
Gtk-osx-developer mailing list
[hidden email]