[gtkada] GtkAda and tasking

Jean-Pierre Rosen rosen.adalog at wanadoo.fr
Tue Apr 18 17:39:39 CEST 2000


> Could you please explain what is "not perfectly clear" in the
documentation ?
Here are the relevant paragraphs:

<<When Glib is initialized to be task-safe, GtkAda is task aware. There is a
single global lock that you must acquire with Gdk.Threads.Enter before
making any Gdk/Gtk call, and release with Gdk.Threads.Leave afterwards. >>
If it is really a lock, it would mean that I cannot have one task managing
one window, with another one managine another window. If that's the case, I
would describe it as a "sequential" component, not a "concurrent" one...

<<Beware that the GtkAda main loop (Gtk.Main.Main) can only be be run inside
one specific tasks. In other words, you cannot call Gtk.Main.Main from a
different task that the one that started the outer level main loop. >>
This is what I find particularly unclear. What is the "outer level main
loop" if it is not Gtk.Main.Main ? Moreover, I tried to initialize the
system (Gtk.Main.Init, Gtk_New) from the main task, then call Gtk.Main.Main
from another one. This did not seem to contradict the previous paragraph,
but it blocked the system.

> Also, if you are looking for a fully blocking solution, you should look
for
> a fully tasking solution I think.
I'd love to. The question is how to do it (see my other message).
---------------------------------------------------------
           J-P. Rosen (Rosen.Adalog at wanadoo.fr)
Visit Adalog's web site at http://pro.wanadoo.fr/adalog






More information about the gtkada mailing list