<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
        {mso-style-priority:1;
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi Gerald, Juan,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have tried very quickly the same procedure in Squeak yesterday and my first impression was Squeak has some stuck terminated processes as well; I however haven't tried a clean image yet.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Another concern is Squeak 6 has implemented the same termination mechanism as Cuis (minus some most recent improvements regarding #isTerminated and the UI behavior). I very much hope it's not interfering with some low GC/VM stuff.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Please let me know what you find.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Btw I'm on Win 10.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best,</p>
<p class="MsoNormal">Jaromir</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNoSpacing"><span style="color:#2E75B6"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#8FAADC"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:cuis.01@klix.ch">Gerald Klix</a><br>
<b>Sent: </b>Friday, October 21, 2022 13:37<br>
<b>To: </b><a href="mailto:juan@cuis.st">Juan Vuletich</a><br>
<b>Cc: </b><a href="mailto:mail@jaromir.net">Jaromir Matas</a>; <a href="mailto:cuis-dev@lists.cuis.st">
Discussion of Cuis Smalltalk</a><br>
<b>Subject: </b>Re: [Cuis-dev] [DEFECT] Debugger leaves terminated processes</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">On 21.10.22 12:21, Juan Vuletich via Cuis-dev wrote:<br>
> On 10/21/2022 6:48 AM, Gerald Klix via Cuis-dev wrote:<br>
>><br>
>>> I just tried on a fresh Cuis.<br>
>>> 1) Evaluated your killer 10M<br>
>>> 2) waited for it to finish<br>
>>> 3) closed the debugger.<br>
>>> 4) 2 terminated processes.<br>
>>> 5) Smalltalk garbageCollect<br>
>><br>
>> Does this mean, we should explicitly trigger the GC,<br>
>> after a Debugger window was closed/deleted/dismissed?<br>
>>> 6) no terminated processes.<br>
>>><br>
>>> Looks ok to me.<br>
>> Hm?! See my question above.<br>
>><br>
>><br>
>> Best Regards,<br>
>><br>
>> Gerald<br>
> <br>
> Runtimes that do garbage collection (not just Smalltalk, also Java, <br>
> JavaScript, DotNet, etc) will run GC when they detect some condition <br>
> that triggers it. At least in Smalltalk you can ask for GC when desired. <br>
> Not sure about the others.<br>
I think the list of literature about garbage collection I read over<br>
my professional life will certainly fill several pages. That's not the <br>
point.<br>
<br>
I wrote “Hm”, because you did not follow the procedure,<br>
that I suggested. If you omit `Smalltalk garbageCollect`<br>
and do some other stuff, I rather sure, you will see the same<br>
behavior. Unless, of course, the problems is related to Linux<br>
or X11 and you used another OS for testing, presumably<br>
MacOS.<br>
> <br>
> The behavior of these systems is well documented elsewhere. There's <br>
> plenty of literature out there.<br>
The behavior Jaromir and I observe -- disregarding any specification for<br>
the opensmalltalkvm, I am not aware of such a thing -- indicates that<br>
these processes tend to live for ever, unless we get rid of them early.<br>
If you never save your image, this is of course less important.<br>
<br>
Therefore, let me reformulate my question:<br>
<br>
1. Is it a requirement for Cuis that image can be saved and<br>
reused, even after a stopped non run-away recursion and other<br>
severe failures?<br>
2. Is calling the GC after closing a DebuggerWindow<br>
a stop-gap-measure for avoid these lingering processes?<br>
(Subject to further testing, of course. I am rather<br>
pessimistic here: The ProcessBrowser repeatly<br>
sends `garbageCollect` to `Smalltalk` and these<br>
stuck processes won't go away, while the ProcessBrowser<br>
is running)<br>
<br>
I am aware that this needs further testing.<br>
As a next step I will run that killer block on<br>
a pristine Squeak 6.0 image using their VM.<br>
If this does not show a difference, I will try to find out<br>
which references keep those processes alive.<br>
If Squeak handles this situation well,<br>
I will start to to compare the debugger code.<br>
<br>
<br>
Best Regards,<br>
<br>
Gerald<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>