[squeak-dev] error on process termination
Thiede, Christoph
Christoph.Thiede at student.hpi.uni-potsdam.de
Wed Aug 19 11:07:24 UTC 2020
Hi Robert,
without knowing details about your error, can you eliminate the infinite loop by applying any of the proposed solutions from http://forum.world.st/I-broke-the-debugger-td5110752.html#a5110814?
Squeak - Dev - I broke the debugger?<http://forum.world.st/I-broke-the-debugger-td5110752.html#a5110814>
forum.world.st
I broke the debugger?. Weird thing her. I was trying out my old Plumbing example, mostly just as a way to improve the swiki page. Using a 19292 update 5.3 image on Mac. Found a recursion related bug in...
Best,
<http://www.hpi.de/>
Christoph
________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Robert Withers via Squeak-dev <squeak-dev at lists.squeakfoundation.org>
Gesendet: Samstag, 25. Juli 2020 14:22:47
An: Squeak-dev
Betreff: Re: [squeak-dev] error on process termination
To give you more context, I am looking into gaurding the Vat's eventualProcess to restart when curtailed. This method is the main processing event loop. Below that is the #restartEventLoop method.
PriorityVat>>#processSends
[
[Processor yield.
self nextPriorityMsg ifNotNil: [:msg | msg value].
normalQ notNil ] ifCurtailed: [self restartEventLoop]] whileTrue
PriorityVat>>#restartEventLoop
| currentEventLoop |
(Processor activeProcess == eventualProcess) ifTrue: [
eventualProcess ifNotNil: [:ea | currentEventLoop := ea].
eventualProcess := nil.
eventualProcess := EventualProcess newOnVat: self.
eventualProcess resumeAsProcess.
currentEventLoop ifNotNil: [:ea | ea terminate ]].
The termination is where the #stepToCallee error occurs.
K, r
On 7/25/20 8:13 AM, Robert Withers wrote:
Hi y'all,
I am getting an error when terminating my process and it loops infinitely stacking this error recursively.
nil doesNotUnderstand: stepToCallee
This is called from Context>>#runUntilErrorOrReturnFrom: aSender after this method has tried to get the topContext. Somehow topContext is nil, and I am guessing that returns from one of the context pops, in the following code from #runUntilErrorOrReturnFrom:.
"Control resumes here once above ensure block or exception handler is executed"
^ error ifNil: [
"No error was raised, remove ensure context by stepping until popped"
[ctxt isDead] whileFalse: [topContext := topContext stepToCallee].
{topContext. nil}
Have I setup the process incorrectly to receive this error or is something else the issue?
Appreciated.
Kindly,
rabbit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200819/e5e69954/attachment-0001.html>
More information about the Squeak-dev
mailing list
|