comp.lang.ada
 help / color / mirror / Atom feed
From: NiGHTS <nights@unku.us>
Subject: Re: A question about task's select delay alternative
Date: Mon, 23 Apr 2018 14:10:42 -0700 (PDT)
Date: 2018-04-23T14:10:42-07:00	[thread overview]
Message-ID: <5f7bce5c-b584-4cda-b1a7-2f3c7294d4ab@googlegroups.com> (raw)
In-Reply-To: <pblgbq$75q$1@gioia.aioe.org>

On Monday, April 23, 2018 at 4:40:30 PM UTC-4, Dmitry A. Kazakov wrote:
> On 2018-04-23 19:32, NiGHTS wrote:
> > In a task with a select like this...
> > 
> > task body X is
> > begin
> >      loop
> >          select
> >              accept Y;
> >          or
> >              delay 10.0;
> >              exit;
> >          end select;
> >      end loop;
> > end X;
> > 
> > What does "delay" actually do to the CPU? In this case I am using the Adacore GNAT compiler for a PC. Is it a loop constantly evaluating elapsed time? Or is it some kind of timed interrupt?
> 
> On most systems there is a way to do it in a non-busy manner. E.g. by 
> waiting for a system waitable object with 10s timeout under Windows or 
> doing same with a futex under Linux or by using pthreads API, whatever 
> pleases the Ada RTS provider. When the entry is accepted/completed by 
> the task scheduler, the object is signaled. Otherwise the timeout is 
> expired and the thread is released with a different return code. In 
> short, do not worry.
> 
> -- 
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de

Thank you for your input. I worry too much.


      reply	other threads:[~2018-04-23 21:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-23 17:32 A question about task's select delay alternative NiGHTS
2018-04-23 18:06 ` Jeffrey R. Carter
2018-04-23 18:25   ` NiGHTS
2018-04-24 20:04     ` reinert
2018-04-23 20:40 ` Dmitry A. Kazakov
2018-04-23 21:10   ` NiGHTS [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