comp.lang.ada
 help / color / mirror / Atom feed
* Re: INFO-ADA Digest V88 - tasking again
@ 1988-02-21 17:11 Mike Feldman
  0 siblings, 0 replies; only message in thread
From: Mike Feldman @ 1988-02-21 17:11 UTC (permalink / raw)


In response to Susan Flynn regarding my delay test: I think you are
correct that I've got an erroneous program here. I suppose it would've
been better to time-stamp all the messages from the 2 tasks and write
them to 2 separate files. The intention was to find an easy and obvious
way to show that in the runtime systems I tested, the high-priority
task was not waking up on time (or at all). I agree that writing the
shared variable (the screen or whatever) should've incorporated
synchronization, but of course that very synchronization would've
probably defeated the example. Your discussion of I/O issues (again)
was very instructive.

The end purpose of the example (and the rest of the discussion) has
served the purposes for which I, at least, intended it:

1. to highlight the fact that many people experienced in Ada
   including, apparently, some compiler vendors, are disagreeing with
   each other in good faith (or just plain baffled) about what is
   meant by the LRM in this critically important area;

2. to highlight the apparent weaknesses in the ACVC in testing this area
   which is apparently so "make-or-break" to some real-time people. I've

I used the word "illegal" instead of "non-conforming"; perhaps I'm being
too loose with my terminology but the idea is the same: in this area
particularly, we all have especially weak signals from the ACVC and the
validation process about just what we should expect from the tasking part
of an Ada runtime system.

I have heard it said (glibly to be sure) that "all Ada tasking programs are
erroneous" - but I believe the confusion here makes it imperative that
attention be sharply focused on this area so that we have a clear and
unambiguous statement regarding what the runtime system is expected to
do, so that we can write programs that we are certain are not erroneous.

One rule of thumb I agree with is that Ada tasks should _always_ do some
explicit synchronization now and then. A brief delay might do, if nothing
else - but if _all_ tasks don't do it, there's _still_ no guarantee,
priorities notwithstanding, that a sleeping task will ever wake up.
I will continue to make this assertion until the ACVC tests the intent
of the LRM and all implementations are known to conform!

Call it illegal, non-conforming, or whatever buzzword you like - there
is still confusion on the issue, and I think my tests prove it.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1988-02-21 17:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1988-02-21 17:11 INFO-ADA Digest V88 - tasking again Mike Feldman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox