comp.lang.ada
 help / color / mirror / Atom feed
From: Ada BRL <ada.brl.2011@gmail.com>
Subject: Re: Interrupts handling in ADA
Date: Tue, 13 Dec 2011 07:23:28 -0800 (PST)
Date: 2011-12-13T07:23:28-08:00	[thread overview]
Message-ID: <a0a3106b-e77d-481e-83ae-74e7c51d0376@m7g2000vbc.googlegroups.com> (raw)
In-Reply-To: m2hb14a4t9.fsf@pushface.org

On 13 Dic, 15:07, Simon Wright <si...@pushface.org> wrote:
> Ada BRL <ada.brl.2...@gmail.com> writes:
> > On 10 Dic, 22:27, Simon Wright <si...@pushface.org> wrote:
> >> The spec might look like
>
> >>    with Ada.Containers.Vectors;
> >>    package Queueing is
> >>       type Message is new Integer;
> >>       package Queue_Data
> >>       is new Ada.Containers.Vectors (Index_Type => Natural,
> >>                                      Element_Type => Message);
> >>       protected Queue is
> >>          procedure Put (M : Message);
> >>          entry Get (M : out Message);
> >>       private
> >>          Buffer : Queue_Data.Vector;
> >>       end Queue;
> >>    end Queueing;
>
> >> and (as a hint) the body of the Get entry might start like
>
> >>       entry Get (M : out Message) when not Buffer.Is_Empty is
> >>       begin
> > Thank you for the reply!
>
> > Please tell me if I'm wrong:
>
> > - inside the main task I must use an accept statement "Get": by doing
>
> Nitpicks: I said 'main task', but you might not need an explicit task,
> because the main program runs in the context of the 'environment task'
> so can make tasking calls, be blocked etc just like any other task.

Ok, it's clear, the main function it's a task itself...

>
> Also, this isn't called an accept statement; it's an entry call. The way
> a task indicates it's prepared to accept an entry call is by an accept
> statement; protected objects are different. So if instead of Queue being
> protected it was a task (not something I'd recommend) the corresponding
> body part would have looked like
>
>    accept Get (M : out Message) when not Buffer.Is_Empty do

I haven't understood you...
What does it mean "declaring a protected task"? You would not
recommend it, ok, but what does it mean?
In the example above is the Buffer (member of main) the unique
protected object or the main function itself has to be declared as
protected?

Sorry but I'm beginning to loose the thread...



>
> > it, this means that the main task wait on this "barrier" until there
> > is something inside the protected object queue; when entry Get is
> > available (due to the incoming data), the main task is automatically
> > notified and it executes the Get function, isnt' it? So the entry /
> > accept paradigm is something like events in C?
> > So the main task doesn't has to constantly poll the queue; the entry /
> > accept statement do it by itself. Am I right?
>
> That's right (no comment on the 'events in C' part, though).




  reply	other threads:[~2011-12-13 15:23 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-10 20:43 Interrupts handling in ADA Ada @ BRL
2011-12-10 21:13 ` Vinzent Hoefler
2011-12-10 22:09 ` Niklas Holsti
2011-12-10 22:27 ` Simon Wright
2011-12-11 20:21   ` Martin Dowie
2011-12-13 13:51     ` Ada BRL
2011-12-13 23:18       ` Martin Dowie
2011-12-13 14:11     ` Niklas Holsti
2011-12-13 14:54       ` Simon Wright
2011-12-13 15:06         ` Ada BRL
2011-12-13 21:49           ` Niklas Holsti
2011-12-13 23:18       ` Martin Dowie
2011-12-13 12:47   ` Ada BRL
2011-12-13 15:07     ` Simon Wright
2011-12-13 15:23       ` Ada BRL [this message]
2011-12-13 18:14         ` Simon Wright
2011-12-13 18:56           ` Ada BRL
2011-12-13 19:56           ` Bill Findlay
2011-12-13 22:15         ` Niklas Holsti
2011-12-13 15:34       ` Simon Wright
2011-12-13 17:55         ` Ada BRL
2011-12-13 18:18           ` Dmitry A. Kazakov
2011-12-13 19:01             ` Ada BRL
2011-12-13 19:58               ` Dmitry A. Kazakov
2011-12-13 18:24           ` Simon Wright
2011-12-11  0:15 ` Jeffrey Carter
2011-12-13 12:53   ` Ada BRL
2011-12-11  9:23 ` Dmitry A. Kazakov
2011-12-13 13:11   ` Ada BRL
2011-12-13 14:04     ` Dmitry A. Kazakov
2011-12-13 14:51       ` Ada BRL
2011-12-13 15:02         ` Ada BRL
2011-12-13 15:39         ` Dmitry A. Kazakov
2011-12-13 18:51           ` Ada BRL
2011-12-13 19:51             ` Dmitry A. Kazakov
2011-12-13 23:32             ` georg bauhaus
2011-12-11 12:04 ` Georg Bauhaus
2011-12-13 14:08   ` Ada BRL
2011-12-12  3:19 ` anon
2011-12-12  9:12   ` Niklas Holsti
2011-12-13 13:36     ` Ada BRL
2011-12-12 15:23   ` björn lundin
2011-12-13 13:38     ` Ada BRL
2011-12-13 13:56       ` Ludovic Brenta
2011-12-13 14:10         ` Ada BRL
2011-12-13 13:31   ` Ada BRL
replies disabled

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