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 11:25:38 -0700 (PDT)
Date: 2018-04-23T11:25:38-07:00	[thread overview]
Message-ID: <ab52c432-35b4-459c-8acd-f46ab3e31e47@googlegroups.com> (raw)
In-Reply-To: <pbl7b3$3o4$1@dont-email.me>

On Monday, April 23, 2018 at 2:06:28 PM UTC-4, Jeffrey R. Carter wrote:
> On 04/23/2018 07:32 PM, NiGHTS wrote:
> > 
> > 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?
> 
> What timed selective accept "does to the CPU" is not defined by the language. 
> It's determined by the compiler implementation and, probably, by the features of 
> the OS, if any. So there's no Ada answer to your question.
> 
> I don't know how GNAT implements this, but my experience with it is that blocked 
> tasks don't use significant CPU. You can test this easily enough.
> 
> Why do you care?
> 
> -- 
> Jeff Carter
> "When danger reared its ugly head, he bravely
> turned his tail and fled."
> Monty Python and the Holy Grail
> 60

I have a number of busy threads I plan on launching, and I am wondering what cost I would incur launching them in parallel with watchdog threads. They are used to monitor the busy threads for performance faults and have fail alternatives if the threads take too long. 

I'd hate to bog down the CPU with unnecessary delays. Do I need to worry about lowering the CPU priority of such a non-essential thread in order to improve overall system performance?


  reply	other threads:[~2018-04-23 18:25 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 [this message]
2018-04-24 20:04     ` reinert
2018-04-23 20:40 ` Dmitry A. Kazakov
2018-04-23 21:10   ` NiGHTS
replies disabled

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