<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Jaromir --<div><br></div><div>> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Supersede Kernel-jar.1474.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">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.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></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;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 09.06.2022 10:16:04 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style='font-family:Arial,Helvetica,sans-serif'>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><br></div></blockquote>
                                        </div></body>