comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Re: embed accept statement in procedures not possible?
Date: Sat, 05 May 2007 19:54:31 -0400
Date: 2007-05-05T19:54:31-04:00	[thread overview]
Message-ID: <uslaaygg8.fsf@stephe-leake.org> (raw)
In-Reply-To: 1178291081.936739.131740@c35g2000hsg.googlegroups.com

Gerd <GerdM.O@t-online.de> writes:

> Hi all,
>
> I work with GNAT 3.15 on Windows XP. My problem is that I want
> structure my program in a way that is not accepted by GNAT, but I
> cannot understand why.
>
> My code (schematic only):
>
> task t is
>   entry e;
> end t;
>
> task body t is
>   procedure p is
>   begin
>     accept e;
>   end p;
> begin
>   p;
> end t;
>
> GNAT tells me: "enclosing body for accept must be a task". But - the
> accept in procedure p _is_ in a task. So why is this not allowed?
>
> My accept statement is a bit longer and needed a few times in
> different situations. Therefore I don't want to "copy and paste" this
> code directly in the task body.

You can make the body of the accept call a shared procedure:

task body t is
  procedure p is
  begin
    ...;
  end p;
begin
  accept e do
    p;
  end;

  ... 

  accept e do
    p;
  end;

  ...
end t;


>
>
> Gerd
>

-- 
-- Stephe



      parent reply	other threads:[~2007-05-05 23:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-04 15:04 embed accept statement in procedures not possible? Gerd
2007-05-04 16:58 ` Jean-Pierre Rosen
2007-05-04 19:45   ` Adam Beneschan
2007-05-09  7:12     ` Jean-Pierre Rosen
2007-05-09 14:56       ` Adam Beneschan
2007-05-10 11:43         ` Jean-Pierre Rosen
2007-05-10 17:26           ` Pascal Obry
2007-05-04 17:03 ` (see below)
2007-05-04 21:22   ` adaworks
2007-05-05 23:54 ` Stephen Leake [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