From: davidb42@my-deja.com
Subject: Are delay statements abortable?
Date: 2000/01/10
Date: 2000-01-10T00:00:00+00:00 [thread overview]
Message-ID: <85buah$hn4$1@nnrp1.deja.com> (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.
next reply other threads:[~2000-01-10 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-01-10 0:00 davidb42 [this message]
2000-01-10 0:00 ` Are delay statements abortable? Ross
2000-01-10 0:00 ` Tucker Taft
2000-01-10 0:00 ` susan satnford
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox