[squeak-dev] Regression | Cannot interrupt "[ [] repeat ] fork" anymore

Jaromir Matas mail at jaromir.net
Thu Dec 16 19:47:27 UTC 2021

Hi Christoph,
Yes, a good one 😊 I just wanted to suggest
                ^ [(self vmParameterAt: parameterIndex)
                                                ifNil: [defaultValueOrBlock value]]
                                on: Error
                                do: [defaultValueOrBlock value]

i.e. without the return inside ifNil block…

I noticed recently the image stopped responding to
Smalltalk processPreemptionYields: false

So the default processPreemptionYields value remains false, right?

From: Thiede, Christoph<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>
Sent: Thursday, December 16, 2021 20:29
To: squeak-dev<mailto:squeak-dev at lists.squeakfoundation.org>
Subject: Re: [squeak-dev] Regression | Cannot interrupt "[ [] repeat ] fork" anymore

Ha, got it! This was a small regression in SmalltalkImage >> #processPreemptionYields from dtl 1/5/2021 19:29 (System-dtl.1261). Fixed in System-ct.1268. :-)



Von: Thiede, Christoph
Gesendet: Donnerstag, 16. Dezember 2021 19:29:30
An: squeak-dev
Betreff: AW: [squeak-dev] Regression | Cannot interrupt "[ [] repeat ] fork" anymore

Hi Dave, hi Marcel,

one "recent" change I noticed is that one to 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.

> even if CMD+Dot interrupts the "[ [] repeat ] fork" from the interrupt watcher

How did you achieve to do this? The interrupt doesn't work for me in this situation.



Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel
Gesendet: Donnerstag, 16. Dezember 2021 15:53:37
An: squeak-dev
Betreff: Re: [squeak-dev] Regression | Cannot interrupt "[ [] repeat ] fork" anymore

Hi Christoph, hi Dave, hi all --

"Processor preemptedProcess" does not behave as it used to be. It now answers the current ui process even if CMD+Dot interrupts the "[ [] repeat ] fork" from the interrupt watcher.

Maybe you can spot the issue right away?

ProcessorScheduler >> preemptedProcess
"Return the process that the currently active process just preempted."
self activeProcess priority to: 1 by: -1 do: [:priority |
(quiescentProcessLists at: priority) ifNotEmpty: [:list |
^ Smalltalk processPreemptionYields
ifTrue: [list last]
ifFalse: [list first]]].
^ nil


Am 16.12.2021 14:33:51 schrieb David T. Lewis <lewis at mail.msen.com>:
On Thu, Dec 16, 2021 at 11:27:09AM +0100, Marcel Taeumel wrote:
> Hi all --
> I am investigating a?? regression revealed via DebuggerTests >> test01UserInterrupt. One cannot interrupt "[ [] repeat ] fork" from a do-it anymore. :-(
> VM: 202112022203 (32-bit, Windows 10)
> Update: #20872
> 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".

Confirming on Linux and also on an interpreter VM with trunk level V3 image,
so the issue is in the image, not the VM.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20211216/46232798/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0CB9301048554EEBA662C4875E74FF8A.png
Type: image/png
Size: 141 bytes
Desc: 0CB9301048554EEBA662C4875E74FF8A.png
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20211216/46232798/attachment.png>

More information about the Squeak-dev mailing list