comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: Ravenscar - release multiple tasks when an event occurs
Date: Tue, 05 May 2020 17:05:27 +0100
Date: 2020-05-05T17:05:27+01:00	[thread overview]
Message-ID: <lyimhafjug.fsf@pushface.org> (raw)
In-Reply-To: db2fa833-c660-4c4e-9e28-6947aec11fb8@googlegroups.com

Jere <jhb.chat@gmail.com> writes:

> On Sunday, May 3, 2020 at 6:43:31 AM UTC-4, Simon Wright wrote:
>> I have several sensor tasks (in general, 2 at the moment) which will of
>> course be created and start execution during elaboration.
>> 
>> I'd like to ensure that they don't actually start reading and reporting
>> input data until the system is in a state to receive them.
>> 
>> With the Ravenscar profile it's not obvious how to do this (only one
>> entry per PO, only one task allowed to queue). I suppose I could just
>> ignore the inputs until the system's ready to receive them! but has
>> anyone a scheme which is less clunky?
>> 
>> An alternative would be to try for the Jorvik profile, which does allow
>> multiple tasks to queue on one entry.
>
> I don't have any experience using ravenscar, so this is somewhat of 
> a question as well as a potential option.  I know you cannot do
> relative delays, but can you do absolute delays?  If so, could that 
> then give you the option to have a single protected object with a
> get function and set procedure (no entries) and you just spin lock
> at the beginning of all your tasks looking for that protected 
> object to change state? 

With Ravenscar, you can _only_ do absolute delays. Jorvik (not yet in
the compiler, GNAT_Extended_Ravenscar is the equivalent) allows relative
delays too.

I think it would be unwise to spin lock! A loop with a short delay would
do.

  reply	other threads:[~2020-05-05 16:05 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-03 10:43 Ravenscar - release multiple tasks when an event occurs Simon Wright
2020-05-03 11:50 ` Niklas Holsti
2020-05-05 16:02   ` Simon Wright
2020-05-05 16:16     ` Niklas Holsti
2020-05-03 14:45 ` Jere
2020-05-05 16:05   ` Simon Wright [this message]
2020-05-03 15:09 ` J-P. Rosen
2020-05-05 16:11   ` Simon Wright
2020-05-05 17:02     ` Niklas Holsti
2020-05-03 15:13 ` Jeffrey R. Carter
2020-05-05 16:12   ` Simon Wright
2020-05-05 16:22 ` Simon Wright
replies disabled

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