<html><head></head><body>
    <p>Hi Jakob,</p>
    <p>I changed my code a little bit to open a Debugger. Yet I still
      have two issues.<br/>
    </p>
    <div class="moz-cite-prefix">On 6/21/20 5:53 PM, Robert Withers
      wrote:<br/>
    </div>
    <blockquote type="cite" cite="mid:b92c0061-5bfd-d008-5339-b77ca4f353fa@pm.me">
      <p>You can load the following and run the tests.</p>
      <blockquote>
        <p>Installer ss project: 'Cryptography'; install:
          'PromisesLocal'.</p>
      </blockquote>
    </blockquote>
    <p>The latest PromisesLocal-rww.2.mcz  has the changes. You can load
      with the above Installer doIt. <br/>
    </p>
    <blockquote type="cite" cite="mid:b92c0061-5bfd-d008-5339-b77ca4f353fa@pm.me">I got a
      little lost in capturing exceptions, within the Vat's event loop
      #processSends. I have tickled my implementation a little to try
      and get the Vat event thread to throw an exception, which presents
      a Debugger. I have been unable to pop up the Debugger on the
      error, but the promise does get smashed.</blockquote>
    <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>
      <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>
    <p><br/>
    </p>
    Kindly,<br/>
    Rabbit<br/>
    <blockquote>
    </blockquote>
  

</body></html>