On Sun, 13 May 2012 08:38:52 -0700 (PDT), Patrick wrote:
> I have been playing with gtk ada but I was discouraged when I read about
> tasking in the documentation. It seemed like it was not fully supported.
> Could you give me some feedback on tasking support in gtk ada?
GTK is not thread-safe, that means if you would call any Gtk (and thus
GtkAda) subprogram form the thread different from the main thread (more
accurately, from the thread running the GTK messages loop), it will most
certainly crash.
> could you tell me more about your tasking contributions?
GtkAda contributions provide means for an Ada task to engage a rendezvous
with the main task. It is safe to use any GTK operations from there. It
could be done either in the traditional OO way by overriding a primitive
"visitor" operation, or per a generic package instantiation and passing a
"service" callback.
GtkAda contributions also provide convenience operations for opening simple
message boxes from any Ada task.
Further GtkAda contributions provide task-safe tracing facilities for
debugging GtkAda programs. Which supports call stack tracing, visual
navigation of the call stack, breaking upon GTK errors and warnings,
jumping to the source location using the GPS.
For further information read this:
http://www.dmitry-kazakov.de/ada/gtkada_contributions.htm#1
The subdirectory test_gtkada contains test_gtk_tasking.adb which
illustrates usage of tasking support.