<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Tony --<div><br></div><div>Seems to work now. Except that you will also get MNU #stepToCallee after abandon.</div><div><br></div><div>Best,</div><div>Marcel</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 04.11.2021 10:56:48 schrieb Tony Garnock-Jones <tonyg@leastfixedpoint.com>:</p><div style='font-family:Arial,Helvetica,sans-serif'>Also of note: using `self halt` to debug `ensure:` blocks is made <br>difficult by this! (Because the process just... disappears!)<br><br>On 11/4/21 09:59, Tony Garnock-Jones wrote:<br>> Here's an example of where `ensure:` doesn't quite do what it says on <br>> the tin:<br>> <br>>      [<br>>        [Processor activeProcess terminate] ensure: [<br>>          Transcript cr; show: 'outer1'.<br>>          [nil error: 'aiee'] ensure: [Transcript cr; show: 'inner'].<br>>          Transcript cr; show: 'outer2'.<br>>        ]<br>>      ] fork<br>> <br>> Expected output:<br>> <br>>      outer1<br>>      (debugger appears; click 'abandon')<br>>      inner<br>> <br>> (or possibly:<br>> <br>>      outer1<br>>      (debugger appears; click 'abandon')<br>>      inner<br>>      outer2<br>> <br>> which is what you get if you change "Processor activeProcess terminate" <br>> to "1 + 2" above... but this also seems odd.)<br>> <br>> Actual output:<br>> <br>>      outer1<br>>      (no debugger appears, nothing more happens)<br>> <br>> Are my expectations out-of-line, or is there a problem worth <br>> investigating here?<br>> <br>> "--"<br>> <br>> I think it's worth noting that a related program:<br>> <br>>      [<br>>        [Processor activeProcess terminate] ensure: [<br>>          [<br>>            Transcript cr; show: 'outer1'.<br>>            [nil error: 'aiee'] ensure: [<br>>              Transcript cr; show: 'inner'].<br>>            Transcript cr; show: 'outer2'.<br>>          ] on: Error do: [:ex | Transcript cr; show: ex]<br>>        ]<br>>      ] fork<br>> <br>> yields the reasonable output<br>> <br>>      outer1<br>>      Error: aiee<br>>      inner<br>> <br>> Cheers,<br>>    Tony<br>> <br><br></div></blockquote>
                                        </div></body>