From: ishikawa@arielworks.com
Subject: Re: requeue with abort and timed call
Date: Sun, 4 Jan 2009 10:03:44 -0800 (PST)
Date: 2009-01-04T10:03:44-08:00 [thread overview]
Message-ID: <bf1f36fd-60ab-4d0a-ab4d-feb5f225685b@v5g2000prm.googlegroups.com> (raw)
In-Reply-To: 4uQ7l.509148$yE1.49118@attbi_s21
On Jan 4, 6:09 am, "Jeffrey R. Carter"
<spam.jrcarter....@spam.acm.org> wrote:
> Delay statements and calls to Ada.Text_IO.Put_Line are potentially blocking
> operations. It is an error to call potentially blocking operations from a
> protected action. See ARM 9.5.1.
I'm sorry, I overlooked it.
How about this one;
with Ada.Text_IO; use Ada.Text_IO;
procedure Timed_Protected is
Z : boolean := True;
protected P is
entry E1;
entry E2;
end P;
protected body P is
entry E1 when True is
begin
-- this entry takes 5 seconds
while Z loop -- Z will be changed in 5 sec. by T2
null;
end loop;
end E1;
entry E2 when True is
begin
null;
end E2;
end P;
task T1 is
end T1;
task body T1 is
begin
Put_Line ("E1");
P.E1;
end T1;
task T2 is
end T2;
task body T2 is
begin
-- to complete E1, change the flag
delay 5.0;
Z := False;
Put_Line ("E1 done");
end T2;
begin
delay 0.2; -- to ensure start after T1
Put_Line ("Parent selecting");
select
P.E2;
Put_Line ("E2");
else
Put_Line ("Parent cancelling");
end select;
end Timed_Protected;
I got the same result from this code.
It seems that the cancellation of entry calls occurs only at the end/
start of protected actions.
If the onging protected action takes long time, timed calls wait for
the end of the onging protected action ignoring its expiration time.
next prev parent reply other threads:[~2009-01-04 18:03 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-28 13:24 requeue with abort and timed call ishikawa
2008-12-28 14:30 ` Dmitry A. Kazakov
2008-12-28 15:53 ` christoph.grein
2008-12-28 16:09 ` christoph.grein
2008-12-28 17:46 ` ishikawa
2008-12-29 10:23 ` christoph.grein
2008-12-29 10:55 ` Dmitry A. Kazakov
2008-12-29 11:17 ` christoph.grein
2008-12-29 12:27 ` Dmitry A. Kazakov
2008-12-28 17:16 ` Dmitry A. Kazakov
2008-12-28 21:42 ` Robert A Duff
2008-12-29 10:42 ` Jean-Pierre Rosen
2008-12-29 21:05 ` sjw
2008-12-30 9:25 ` Jean-Pierre Rosen
2008-12-30 13:18 ` christoph.grein
2008-12-30 15:39 ` Jean-Pierre Rosen
2008-12-30 17:01 ` christoph.grein
2008-12-30 17:16 ` ishikawa
2008-12-30 15:54 ` ishikawa
2008-12-30 21:33 ` sjw
2008-12-30 22:52 ` Robert A Duff
2008-12-31 9:21 ` Jean-Pierre Rosen
2008-12-31 15:39 ` christoph.grein
2008-12-31 16:14 ` Jean-Pierre Rosen
2009-01-03 16:49 ` ishikawa
2009-01-03 21:09 ` Jeffrey R. Carter
2009-01-04 15:40 ` christoph.grein
2009-01-04 17:09 ` Jeffrey R. Carter
2009-01-04 18:03 ` ishikawa [this message]
2009-01-04 18:56 ` Dmitry A. Kazakov
2009-01-04 23:17 ` belteshazzar
2009-01-05 9:12 ` Dmitry A. Kazakov
2009-01-05 2:48 ` Jeffrey R. Carter
2009-01-05 9:30 ` Dmitry A. Kazakov
2009-01-05 20:28 ` Jeffrey R. Carter
2009-01-05 20:47 ` Dmitry A. Kazakov
2009-01-06 2:35 ` Jeffrey R. Carter
2009-01-05 10:17 ` Jean-Pierre Rosen
2008-12-28 15:53 ` sjw
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox