[squeak-dev] #terminate update

Marcel Taeumel marcel.taeumel at hpi.de
Thu Jun 9 08:38:49 UTC 2022

Hi Jaromir --

Thanks! :-) This is a great improvement over 5.3.

Am 07.06.2022 17:38:35 schrieb Jaromir Matas <mail at jaromir.net>:
Hi Marcel, all
I’ve sent an updated #terminate Kernel-jar.1476:
- fixed the synchronization between the terminating process and the process that invoked the termination.
- added further protection against multiple termination (it makes the code uglier but I can't help it)
- improved the comment (it's still too long and insufficient though ;) )
Warning: When terminating a process from the UI (Workspace) one must take into account that an error during the unwind will freeze the UI (because the UI waits for the completion of the termination) - this is expected but scary :)
If you run this in the Workspace:
                p := [ [Semaphore new wait] ensure: [1/0] ] fork.
And then terminate by hand in the Workspace:
                p terminate
the UI freezes; after Cmd + . recovery the ZeroDivide pops up as expected.
Better way to terminate p in the Workspace is indeed:
                [p terminate] fork
The ZeroDivide pops up right away ad both processes terminate after you dismiss the popup window.
(To close the debugger window use Proceed or 'terminate ' from the window menu; Abandon doesn’t work for some reason unrelated to #terminate)
For comparison: in 5.3 the above example ended up as an "Unwind error".
Jaromír Matas
mail at jaromir.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220609/154d1898/attachment.html>

More information about the Squeak-dev mailing list