<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        <span style="font-size: 12pt">Hi Christoph --</span><div class="mb_sig"></div>
                                        <div><span style="font-size: 12pt"><br></span></div><div><p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size: 12pt">>> even if CMD+Dot interrupts the "[ [] repeat ] fork" from the interrupt watcher</span></p><p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size: 12pt">> How did you achieve to do this? The interrupt doesn't work for me in this situation.<br></span></p></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">In EventSensor >> #userInterruptWatcher, I added something to write to stdout. Since this worked, I assumed that CMD+Dot does actually work but the wrong process gets interrupted. So I ended up in Project >> #interruptName:message:preemptedProcess: and logged the preemptedProcess. And it was the wrong one. :-)</span></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">Hi Jaromir --</span></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">> So the default processPreemptionYields value remains false, right?</span></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">Yes. The default should be cooperative scheduling within a priority level and preemptive scheduling when a higher priority gets ready (e.g., because a semaphore signaled). If you would change #</span><span style="font-size: 12pt">processPreemptionYields to true, then cooperative scheduling cannot be designed reliably anymore. Still, you can designer a high priority process to implement, e.g., time slicing and explicitely change the order of a lower priority. Well, you can even implement priority boosts after some criteria. All that does not need to have </span><span style="font-size: 12pt">#</span><span style="font-size: 12pt">processPreemptionYields on true. So, yes, we keep it at "false".</span></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">Hi all --</span></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">Thanks for fixing this issue so quickly! And -- Hooray! -- the DebuggerTests actually find regresssions. :-)</span></div><div><span style="font-size: 12pt"><br></span></div><div><span style="font-size: 12pt">Best,</span></div><div><span style="font-size: 12pt">Marcel</span></div><blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 16.12.2021 19:29:40 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<div id="divtagdefaultwrapper" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: rgb(0, 0, 0);font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols">
<p>Hi Dave, hi Marcel,</p>
<p><br>
</p>
<p>one "recent" change I noticed is that one to <span>SmalltalkImage>>#processPreemptionYields by Dave in May, which answered false before but answers true since then. But this is just an observation, I do not know whether this change was justified by a change
 on the VM side.</span></p>
<p><br>
</p>
<p>> <span>even if CMD+Dot interrupts the "[ [] repeat ] fork" from the interrupt watcher</span></p>
<p><span><br>
</span></p>
<p><span>How did you achieve to do this? The interrupt doesn't work for me in this situation.</span></p>
<p><span><br>
</span></p>
<p><span>Best,</span></p>
<p><span>Christoph</span></p>
<p><span><br>
</span></p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Donnerstag, 16. Dezember 2021 15:53:37<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] Regression | Cannot interrupt "[ [] repeat ] fork" anymore</span>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" dir="ltr" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left">
Hi Christoph, hi Dave, hi all --
<div><br>
</div>
<div>"Processor preemptedProcess" does not behave as it used to be. It now answers the current ui process even if CMD+Dot interrupts the "<span style="font-size: 10pt">[ [] repeat ] fork" from the interrupt watcher.</span></div>
<div><br>
</div>
<div>Maybe you can spot the issue right away?</div>
<div><br>
</div>
<div>ProcessorScheduler >> <span style="font-size: 13.3333px">preemptedProcess</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>"Return the process that the currently active process just preempted."</span></div>
<div><span style="white-space: pre;font-size: 13.3333px"></span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>self activeProcess priority to: 1 by: -1 do: [:priority |</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>(quiescentProcessLists at: priority) ifNotEmpty: [:list |</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>^ Smalltalk processPreemptionYields</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>ifTrue: [list last]</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>ifFalse: [list first]]].</span></div>
<div><span style="font-size: 13.3333px"><span style="white-space:pre"></span>^ nil</span></div>
<div><br>
</div>
<div>Best,</div>
<div>Marcel</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;min-width: 500px">
<p style="color:#AAAAAA; margin-top:10px">Am 16.12.2021 14:33:51 schrieb David T. Lewis <lewis@mail.msen.com>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">On Thu, Dec 16, 2021 at 11:27:09AM +0100, Marcel Taeumel wrote:<br>
> Hi all --<br>
> <br>
> I am investigating a?? regression revealed via DebuggerTests >> test01UserInterrupt. One cannot interrupt "[ [] repeat ] fork" from a do-it anymore. :-(<br>
> <br>
> VM: 202112022203 (32-bit, Windows 10)<br>
> <br>
> Update: #20872<br>
> <br>
> Since the forked process should run at priority 40 and the "user interrupt watcher" watches at priority 60, this must work. Did we loose a process scheduling point in "[] repeat"? It's still implemented as "[self value. true] whileTrue".<br>
> <br>
<br>
Confirming on Linux and also on an interpreter VM with trunk level V3 image,<br>
so the issue is in the image, not the VM.<br>
<br>
Dave<br>
<br>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</div></blockquote></div>