I think you are correct.<br><br><div class="gmail_quote">On Mon, Dec 3, 2012 at 11:19 AM, Bob Arning <span dir="ltr">&lt;<a href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
    <br>
    <div>On 12/3/12 12:03 PM, Blake McBride
      wrote:<br>
    </div>
    <blockquote type="cite"><br>
      <br>
      <div class="gmail_quote">On Mon, Dec 3, 2012 at 10:55 AM, Bob
        Arning <span dir="ltr">&lt;<a href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div><br>
            On 12/3/12 11:42 AM, Frank Shearar wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  In true reentrancy each recursive call would
                essentially get their own VM.<br>
                &gt;<br>
                &gt;They could, but what&#39;s in the VM that they really
                need a separate copy of?<br>
              </blockquote>
              It&#39;s not the VM, it&#39;s the shared state of the image that
              would cause a<br>
              problem (if anything did). I would think, at least.<br>
            </blockquote>
          </div>
          If that were the case, then he would need not only his own VM,
          but his own image. If these calls from C are expecting a
          virgin image with the ability to execute arbitrary smalltalk
          code and never see anybody else&#39;s data, then a separate image
          (or at leat super sandbox) would seem a requirement. OTOH, if
          he wanted to make use of some BitBlt functions, e.g., then he
          could ship a bitmap to Squeak, request some transformation and
          receive a new bitmap in return. In this case, one Vm and one
          image would seem to do nicely.<br>
        </blockquote>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Yes, separate instance of the image.  It would be
          self-managed for free of the global variables in the VM kernel
          were eliminated.  A simple clone already loaded image function
          could make this work relatively fast.</div>
        <div><br>
        </div>
      </div>
    </blockquote></div></div>
    So, it sounds like what you need is<br>
    - a virgin squeak image for each call<br>
    - virgin VM globals pertaining to that image<br>
    <br>
    And what you could, potentially, share is the VM excutable code.
    Since the VM code is a small part of the footprint, I think your
    requirements are basically met by a new VM/image for each call. Not
    sure there is much to be saved getting a new image and keeping the
    same VM.<br>
    <br>
    <br>
    Cheers,<br>
    Bob<br>
    <blockquote type="cite">
      <div class="gmail_quote">
        <div> </div>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <br>
          Cheers,<br>
          Bob<br>
          <br>
        </blockquote>
      </div>
      <br>
      <br>
      <fieldset></fieldset>
      <br>
      <pre></pre>
    </blockquote>
    <br>
  </div>

<br><br>
<br></blockquote></div><br>