Actually, here is a better description of the scenario, that would help explain the solution.<div><br></div><div>Let&#39;s say I have a many-iteration-loop that needs to execute some Squeak code.  </div><div><br></div><div>
1.  I first create a new instance of the Squeak VM with a cloned image.  ONE TIME</div><div><br></div><div>2.  I then execute Squeak code to cause it to load some custom code needed for that particular use case.  ONE TIME</div>
<div><br></div><div>3.  I then enter my C loop repeatedly calling the VM instance I just created and initialized.  MANY TIMES</div><div><br></div><div>4.  When the loop is over I dispose of the Squeak instance.</div><div>
<br></div><div>There can be many of these scenarios running recursively at the same time.  Each is totally independent.</div><div><br><br><div class="gmail_quote">On Mon, Dec 3, 2012 at 11:03 AM, Blake McBride <span dir="ltr">&lt;<a href="mailto:blake@mcbride.name" target="_blank">blake@mcbride.name</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><br><div class="gmail_quote"><div><div class="h5">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></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> </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>
</blockquote></div><br></div>