Hi Jaromir,<br>
<br>
> I've been waiting for some reviews and hopefully integrating the above final version into the Trunk. We have some unfinished discussions with Christoph but they are more or less on top of the proposed Kernel-jar.1414.<br>
<br>
No pressure and all, but for me it looked like as if it was your turn to reply to my (probably way too long) critique. See the threads "Solving multiple termination bugs - summary & proposal", "The semantics of halfway-executed unwind contexts during process termination", "Tackling Context>>#runUntilErrorReturnFrom: (was: BUG/REGRESSION while debugging Generator >> #nextPut:)", and "The Inbox: Kernel-ct.1405.mcz" for the details. :-)<br>
<br>
Best,<br>
Christoph<br>
<br>
<font color="#808080">---<br>
</font><i><font color="#808080">Sent from </font></i><i><u><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><font color="#808080">Squeak Inbox Talk</font></a></u></i><br>
<br>
On 2021-11-04T11:25:34+01:00, m@jaromir.net wrote:<br>
<br>
> Hi Tony,<br>
> <br>
> earlier this year I reworked #terminate fixing multiple bugs - try merging Kernel-jar.1414 from the Inbox into your image and your example should behave as expected :)<br>
> <br>
> I've been waiting for some reviews and hopefully integrating the above final version into the Trunk. We have some unfinished discussions with Christoph but they are more or less on top of the proposed Kernel-jar.1414.<br>
> <br>
> Thanks for posting this interesting example!<br>
> best,<br>
> <br>
> ^[^ Jaromir<br>
> ---<br>
> <br>
> Sent from Squeak Inbox Talk<br>
> <br>
> On 2021-11-04T09:59:05+01:00, tonyg at leastfixedpoint.com wrote:<br>
> <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>
> <br>