<html><head></head><body>
    <p>Hi Jakob,</p>
    <p>I have new ideas, in thinking on this problem, one per point I
      made.<br/>
    </p>
    <div class="moz-cite-prefix">On 6/23/20 8:40 AM, Robert Withers
      wrote:<br/>
    </div>
    <blockquote type="cite" cite="mid:b43f1dc4-2d98-d91d-adde-670436dc9cea@pm.me">
      <p>I removed catch-all error handling from the
        PriorityVat>>#processSends. I then added to the error
        handling in EventualMessageSend>>#value to open a debugger
        after smashing the resolver. </p>
      <blockquote>
        <p>value<br/>
          <br/>
              | value |<br/>
              [value := receiver<br/>
                  perform: selector <br/>
                  withArguments: (self collectArguments: arguments)<br/>
                  inSuperclass: receiver class.<br/>
              self resolver notNil <br/>
                  ifTrue: [ self resolver resolve: value ] ]<br/>
                      on: Exception<br/>
                      do: [:ex |<br/>
                          self resolver notNil <br/>
                              ifTrue: [self resolver smash: ex].<br/>
                          <b>Processor activeProcess signalException:
            ex</b>].</p>
      </blockquote>
      <p>I have a couple of issues with this:</p>
      <ol>
        <li>When I close the debugger, the EventualProcess with the
          stack that ended up in this exception is terminated. I would
          need this process to restart and continue, after clearing the
          stack from this exception. I am unsure how to make that
          happen. Any suggestions are MOST WELCOME!<br/>
        </li>
      </ol>
    </blockquote>
    <blockquote>
      <ol>
        <li>I would like to copy the stack to the side and restart the
          Vat's eventLoop right away so that it does not deadlock the
          event loop process. And so continue processing message sends.</li>
      </ol>
    </blockquote>
    <blockquote type="cite" cite="mid:b43f1dc4-2d98-d91d-adde-670436dc9cea@pm.me">
      <ol>
        <li> <br/>
        </li>
        <li>The stack in the Debugger is not opened on the stack frame
          that causes the failure. I would like to rewind the stack to
          the bolded line, where the exception is produced, in this case
          it would be the method: <b>ZeroDivide(Exception)>>signal</b>.
          Is this not where the Debugger should be opened? Again, I am
          unsure how to do this and all suggestions are MOST WELCOME!</li>
      </ol>
      <blockquote>
        <blockquote>
          <p>--- The full stack ---<br/>
            EventualProcess(Process)>>signalException:<br/>
            [] in EventualMessageSend>>value<br/>
            FullBlockClosure(BlockClosure)>>cull:<br/>
            [] in Context>>handleSignal:<br/>
            FullBlockClosure(BlockClosure)>>ensure:<br/>
            Context>>handleSignal:<br/>
            <b>ZeroDivide(Exception)>>signal</b><br/>
            SmallInteger>>/<br/>
            [] in EventualMessageSend>>value<br/>
            FullBlockClosure(BlockClosure)>>on:do:<br/>
            EventualMessageSend>>value<br/>
            PriorityVat>>processSends<br/>
            [] in EventualProcess>>setupContext</p>
        </blockquote>
      </blockquote>
    </blockquote>
    <blockquote>
      <ol>
        <li><br/>
        </li>
        <li>With the stack copied to the side, I want to massage the
          stack so the top frame is the Exception's frame where the
          Exception gets signaled. Then I would like to remove the
          frames below the frame that causes the Exception signal or
          perhaps the stack down to the
          EventualMessageSend>>#value. This is the stack I
          envision opening in a Debugger:</li>
      </ol>
      <blockquote>
        <p><b>ZeroDivide(Exception)>>signal</b><br/>
          SmallInteger>>/<br/>
          [] in EventualMessageSend>>value<br/>
          FullBlockClosure(BlockClosure)>>on:do:<br/>
          EventualMessageSend>>value</p>
      </blockquote>
    </blockquote>
    <p>What do you think? How can I do each of these?</p>
    <blockquote>
      <ol>
        <li>Copy stack</li>
        <li>Restart eventLoop</li>
        <li>Prune stack</li>
        <li>Open Debugger<br/>
        </li>
      </ol>
    </blockquote>
    <p>K, r<br/>
    </p>
  

</body></html>