From: Simon Wright <simon@pushface.org>
Subject: Re: Interresting difference in Normal-Returns/Expression-Functions and Extended-Returns.
Date: Tue, 23 Apr 2013 17:33:20 +0100
Date: 2013-04-23T17:33:20+01:00 [thread overview]
Message-ID: <lyehe1dx67.fsf@pushface.org> (raw)
In-Reply-To: 97967083-d21d-4de2-aeb8-76d0d5818993@googlegroups.com
Shark8 <onewingedshark@gmail.com> writes:
> I recently ran into unexpected behavior in the differences between a
> normal return and an extended return [in GNAT]: namely an extended
> return used to generate items in an array of tasks will *ALWAYS*
> execute in a sequential manner whereas the array generated with an
> expression-function or normal return is executed simultaneously.
>
> Is there some subtle difference in the extended return that I'm
> unaware of? (Is this a bug?)
I'm pretty sure you've found a bug.
I changed Testing to have an entry Start, and changed the body to report
when the task was activated:
task type Testing( Text : not null access constant String ) is
entry Start;
end Testing;
task body Testing is
D : Duration := RNG.Random; -- Get a random duration.
begin
Resource.Write (Text.all & " starting.");
accept Start;
delay D; -- Delay for that duration.
-- Then print the Text for the task as well as the Delay.
Resource.Write( Text.all & ASCII.HT & Duration'Image(D) );
end Testing;
and changed the three test loops to start the tasks
begin
for T of P loop
T.Start;
end loop;
end TEST_3;
The expression function and normal return function versions were fine;
the extended return function version prints
TEST_3: Extended Return Function
Bob starting.
and hangs.
prev parent reply other threads:[~2013-04-23 16:33 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 18:27 Interresting difference in Normal-Returns/Expression-Functions and Extended-Returns Shark8
2013-04-22 19:13 ` Dmitry A. Kazakov
2013-04-22 20:11 ` Shark8
2013-04-23 6:15 ` Simon Wright
2013-04-23 7:35 ` Stephen Leake
2013-04-23 8:58 ` Dmitry A. Kazakov
2013-05-02 2:20 ` Randy Brukardt
2013-05-02 4:41 ` Shark8
2013-04-23 6:32 ` egilhh
2013-04-23 15:24 ` Adam Beneschan
2013-04-24 5:56 ` egilhh
2013-04-24 14:40 ` Adam Beneschan
2013-04-25 5:30 ` egilhh
2013-04-25 5:41 ` Shark8
2013-04-23 16:00 ` Adam Beneschan
2013-04-23 16:52 ` Simon Wright
2013-04-23 17:57 ` Adam Beneschan
2013-04-25 8:48 ` egilhh
2013-04-25 15:19 ` Adam Beneschan
2013-05-02 2:33 ` Randy Brukardt
2013-05-02 2:38 ` Randy Brukardt
2013-05-02 16:15 ` Adam Beneschan
2013-05-02 22:00 ` Randy Brukardt
2013-05-03 1:11 ` Adam Beneschan
2013-05-03 5:34 ` Simon Wright
2013-05-03 6:43 ` egilhh
2013-05-03 16:49 ` Adam Beneschan
2013-05-03 23:09 ` Randy Brukardt
2013-04-23 23:00 ` Shark8
2013-04-23 23:16 ` Adam Beneschan
2013-05-02 2:28 ` Randy Brukardt
2013-05-02 16:37 ` Adam Beneschan
2013-04-23 16:33 ` Simon Wright [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox