<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;}
.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 Marcel,</p>
<p class="MsoNormal">Thanks a lot for merging! I’ll send a summary message a bit later…</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">>> Supersede Kernel-jar.1474.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">> If you want to "supersede" a version, please disconnect its ancestry as you did several times before. :-) I kept 1474 here because it was still connected to 1477.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Looks like I don’t know what ‘supersede’ really means :O Apologies; I just wanted to say “forget about
<span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Kernel-jar.1474”. Need more education :)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Best,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Jaromir</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:marcel.taeumel@hpi.de">Marcel Taeumel</a><br>
<b>Sent: </b>Thursday, June 9, 2022 10:18<br>
<b>To: </b><a href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev</a><br>
<b>Subject: </b>Re: [squeak-dev] The Trunk: Kernel-jar.1477.mcz</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Hi Jaromir --<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">> Supersede Kernel-jar.1474.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">If you want to "supersede" a version, please disconnect its ancestry as you did several times before. :-) I kept 1474 here because it was still connected to 1477.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Best,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Marcel<o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 8.0pt;margin-left:0in;margin-top:15.0pt;margin-bottom:5.0pt">
<p style="margin-top:7.5pt"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#AAAAAA">Am 09.06.2022 10:16:04 schrieb commits@source.squeak.org <commits@source.squeak.org>:<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.5in;margin-bottom:12.0pt;margin-left:0in">
<span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Marcel Taeumel uploaded a new version of Kernel to project The Trunk:<br>
http://source.squeak.org/trunk/Kernel-jar.1477.mcz<br>
<br>
==================== Summary ====================<br>
<br>
Name: Kernel-jar.1477<br>
Author: jar<br>
Time: 8 June 2022, 1:18:13.217988 pm<br>
UUID: cde25b8e-8f6a-4241-8f6e-67a9ae27da68<br>
Ancestors: Kernel-jar.1476<br>
<br>
Setting suspendedContext may ruin your image; add checks to prevent such situations. Add examples and coments documenting disastrous situations.<br>
<br>
Supersede Kernel-jar.1474.<br>
<br>
Updated test will follow later.<br>
<br>
=============== Diff against Kernel-jar.1476 ===============<br>
<br>
Item was changed:<br>
----- Method: Process>>suspendedContext: (in category 'private') -----<br>
+ suspendedContext: aContextOrNil<br>
+ "Set suspendedContext; proceed with caution when assigning nil or when process priority is undefined."<br>
+ <br>
+ "Note: Assigning nil to a runnable but not active process would freeze the image when self is scheduled to run.<br>
+ <br>
+ Workspace example:<br>
+ These two lines (executed at once, not line by line)<br>
+ p := [] newProcess resume.<br>
+ p suspendedContext: nil<br>
+ will freeze the image; the first line puts p in the run queue, the second line niles p's suspendedContext and<br>
+ when the UI cycles, p tries to run with niled suspendedContext and the image freezes as a result.<br>
+ <br>
+ Assigning 'suspendedContext' before 'priority' is defined may cause a disaster when Process Browser is open
<br>
+ with auto-update on; once the 'suspendedContext' is set, the new process is no longer considered terminated<br>
+ and Process Browser will try to place it in its list of processes but encounters a nil error when reading its priority<br>
+ because it has not been set yet.<br>
+ <br>
+ Workspace example:<br>
+ If you run the following line with Process Browser open and auto-update on, you'll ruin your image:<br>
+ p := Process new suspendedContext: [self] asContext<br>
+ Every second a new debugger window pops up and the only way out is to kill the image in the OS.<br>
+ <br>
+ As a precautionary measure set 'priority' if undefined to the active process priority before setting<br>
+ 'suspendedContext'."<br>
- suspendedContext: aContext<br>
- "Note: assigning nil to a runnable but not active process would freeze the image when self is scheduled to run."<br>
<br>
+ priority ifNil: [priority := Processor activePriority].<br>
+ suspendedContext := aContextOrNil ifNil: [self suspend. nil]!<br>
- suspendedContext := aContext ifNil: [self suspend. nil]!<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>