<div dir="ltr"><div>David,<br></div><div>That drops the idle cycle down nicely on Windows 10 to 0% and the system still seems responsive.</div><div><br></div><div>If I hold a mouse button down it jumps up to around 25% cpu usage again. That seems a little excessive</div><div><br></div><div>Best,</div><div>Karl</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 12, 2020 at 9:59 PM David T. Lewis <<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sun, Apr 12, 2020 at 10:42:01AM -0700, tim Rowledge wrote:<br>
> <br>
> <br>
> > On 2020-04-12, at 8:57 AM, Vanessa Freudenberg <<a href="mailto:vanessa@codefrau.net" target="_blank">vanessa@codefrau.net</a>> wrote:<br>
> > <br>
> > <br>
> > We did add delays to the menu loops etc. many years ago. Sounds like ScreenController needs that, too?<br>
> <br>
> Looks like it; I think the problem is that the controlLoop is basically<br>
> do I want control<br>
> while true<br>
> do control stuff<br>
> AND only the `do control stuff` has any attempt at yielding etc. So in a plain empty screen we end up with a furious whizzing around of trying to find an active controller, not finding one (because the ScreenController is not active unless a mouse button is pressed) and looping through all that ControlManager stuff that wants to find something, anything, please-I'm-bored, to do.<br>
> <br>
<br>
This seems right. The ScreenController does call interActivityPause in<br>
the controlLoop, but that does not seem to be actually happening when<br>
the screen is blank and there is nothing to do.<br>
<br>
<br>
> So maybe  something something, only screencontroller in the list of scheduled controllers, something, interactivityPause, something something?<br>
<br>
Maybe in ScheduledControllers (the ControlManager instance). If there<br>
are no windows open, then there is only one entry in the list of<br>
scheduledControllers, and I don't think that interactivityPause is getting<br>
called in that case. So as you say maybe the control manager needs<br>
to figure out when there is nothing for it to be doing.<br>
<br>
I put a plausible fix in the inbox in ST80-dtl.250.<br>
<br>
Dave<br>
<br>
<br>
</blockquote></div>