For an example of how to do it without having a secondary thread do any gtk
commands, see my example program in:

http://www.mail-archive.com/gtk-app-devel-list@gnome.org/msg14213.html

Basically the work thread, that is taking a long time doing its thing,
requests the gui thread to update the GUI by sending it requests through
g_idle_add(). The GUI thread will then, when idle, attend to the routine and
update the gui. Syncronization is handled by mutexes, etc. In my example I
wanted a reply from the GUI thread (should I abort?) therefore the worker
threads blocks until released by the main thread.

Regards,
Dov

On Thu, Nov 4, 2010 at 12:18, Michael T. <mys...@seznam.cz> wrote:

>
> > >  So GIMP is a single threaded software?
> >
> > No, but...
> >
> > > There's never GTK+ multithreaded activity?
> >
> > Indeed.
> >
>
> If I may ask, what is the main technical problem (deeper explanation) with
> using GTK+ from multiple threads?
>
> It is probably very application specific. For instance, in my measurement
> application  an extra thread is started that takes care of data acquisition.
> I need to update a GTK progress bar while measuring, but since data are
> acquired extremely fast I do it from the measuring thread. The main thread,
> where GTK is running is of course blocked until the measurement is finished.
> This is obviously using GTK from multiple threads, but so far works
> perfectly. (Although, sometimes I get an occasional warning during
> execution) But this is probably due to the fact, that the main thread is
> blocked so the only thing that can be done is the progress bar update that
> is being taken care of from the measurement thread.
>
> myso
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to