<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        The issue is that the ScreenController does not #isControlWanted by default. But it is asked over and over again because it is the last remaining controller in the list of controllers.<div><br></div><div>I think it would be better to just move #<span style="font-size: 13.3333px">interActivityPause to the condition of that while loop:</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><div style=""><span style="font-size: 13.3333px">controlLoop </span></div><div style=""><span style="font-size: 13.3333px"><span style="white-space:pre">  </span>[<b>self interActivityPause.</b> self isControlActive] whileTrue: [</span></div><div style=""><span style="font-size: 13.3333px"><span style="white-space: pre;">          </span>self controlActivity. Processor yield]</span></div></div><div style=""><span style="font-size: 13.3333px"><br></span></div><div style=""><span style="font-size: 13.3333px">Best,</span></div><div style=""><span style="font-size: 13.3333px">Marcel</span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 15.04.2020 17:14:55 schrieb Marcel Taeumel <marcel.taeumel@hpi.de>:</p><div style="font-family:Arial,Helvetica,sans-serif"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        Hi all!<div><br></div><div>Yes, in MVC, some controllers might have to call #interActivityPause explicitely. Well, there is Controller >> #controlLoop, which should take care of most cases. If you browse the senders of #interActivityPause, you see that other #whileTrue: loops have to do this as well. "while that button is pressed ..." and similar.</div><div><br></div><div>If will take a look at <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">ST80-dtl.250.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 13.04.2020 15:28:03 schrieb David T. Lewis <lewis@mail.msen.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">Thanks Karl,<br><br>The overall 25% CPU use in MVC seems to be typical, I see the same on<br>Linux. I think that MVC still relies quite a bit on keyboard polling, and<br>that's probably the cause.<br><br>I'll wait a day or so before moving ST80-dtl.250 to trunk in case someone<br>suggests a better approach.<br><br>Dave<br><br><br>On Mon, Apr 13, 2020 at 08:51:43AM +0200, karl ramberg wrote:<br>> David,<br>> That drops the idle cycle down nicely on Windows 10 to 0% and the system<br>> still seems responsive.<br>> <br>> If I hold a mouse button down it jumps up to around 25% cpu usage again.<br>> That seems a little excessive<br>> <br>> Best,<br>> Karl<br>> <br>> <br>> <br>> On Sun, Apr 12, 2020 at 9:59 PM David T. Lewis <lewis@mail.msen.com> wrote:<br>> <br>> > 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 <vanessa@codefrau.net><br>> > wrote:<br>> > > ><br>> > > ><br>> > > > We did add delays to the menu loops etc. many years ago. Sounds like<br>> > 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<br>> > plain empty screen we end up with a furious whizzing around of trying to<br>> > find an active controller, not finding one (because the ScreenController is<br>> > not active unless a mouse button is pressed) and looping through all that<br>> > ControlManager stuff that wants to find something, anything,<br>> > 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<br>> > 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>> ><br><br>> <br><br><br></vanessa@codefrau.net></lewis@mail.msen.com></div></blockquote>
                                        </div></div></blockquote>
                                        </div></body>