Re: [RFA/Ada] Implement Ada tasking support

Joel Brobecker
2008-09-23T15:07:58Z

Hi Eli,

> What is the differences, if any, between threads Ada tasks?

An Ada task carries with it a lot of semantic information thanks
to the Ada Task Control Block (the ATCB). The ATCB contains exactly
one entry per task created, and we can determine from this entry
some information such as the task name, the task state (is is running,
stuck on a rendez-vous, waiting for a rendez-vous, terminated, etc),
or who is the parent, etc. We can also use the debugging information
to extract more information such as the list of entries for instance
(these are routines in the task that you can call to perform a
rendez-vous). But we haven't tried to take advantage of that, at
least not yet.

> Would it make sense to make the existing threads commands to refer to
> Ada tasks, instead of introducing a whole new bunch of commands?

I don't think so, because I think that Ada tasks and threads are
quite different, and the information displayed for these tasks
has some language-specific parts to it (task state, for instance).
On the other hand, I see the "thread" support as a layer that
provides information that is language-neutral, but closer to
the underlying system. Both group of commands serve, IMO, a slightly
different purpose.

> Finally, if we do decide to have these new task commands, are there
> any other languages which could, at least in principle, benefit from
> the same feature for similar reasons, or is Ada the only one?

I'm not sure - I don't know the other languages all that well.

--
Joel