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.
prev parent 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