comp.lang.ada
 help / color / mirror / Atom feed
* Are delay statements abortable?
@ 2000-01-10  0:00 davidb42
  2000-01-10  0:00 ` susan satnford
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: davidb42 @ 2000-01-10  0:00 UTC (permalink / raw)


Are delay statements interruptable/abortable?

I was expecting delay statements in tasks (or in the abortable part of
an asynchronous select construct) to be brought to a premature end on
aborting the task (or on the triggering event).

However, in the Ada implementation I am using, the abortion only seems
to take effect at the expiry of the delay.

For example, in the program below, the main task completes after 25
seconds, but the dependent task (and thus the program as a whole)
doesn't terminate until 40 seconds (at expiry of the 2nd 20 second
delay).

Is this right?
	David Bowerman
	CSC Australia.

   **************************************************************
with Text_IO;
procedure Test_Abort_of_Delay is

  task Dependent_Task;
  task body Dependent_Task is
  begin
    Text_IO.Put_Line ("Starting dependent task.");

    delay 20.0;
    Text_IO.Put_Line ("20 second delay has completed.");
    delay 20.0;
    Text_IO.Put_Line ("40 second delay has completed.");
    delay 20.0;
    Text_IO.Put_Line ("60 second delay has completed.");
    delay 20.0;
    Text_IO.Put_Line ("80 second delay has completed.");

    Text_IO.Put_Line ("Completing dependent task.");
  end Dependent_Task;

begin
  -- Main task
  Text_IO.Put_Line ("Starting main task.");

  delay 25.0;
  abort Dependent_Task;

  Text_IO.Put_Line ("Completing main task.");
end Test_Abort_of_Delay;


Sent via Deja.com http://www.deja.com/
Before you buy.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-01-10  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-01-10  0:00 Are delay statements abortable? davidb42
2000-01-10  0:00 ` susan satnford
2000-01-10  0:00 ` Ross
2000-01-10  0:00 ` Tucker Taft

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