<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><html>On May 8, 2008, at 12:30 AM, John M McIntosh wrote:</html><br class="Apple-interchange-newline"><blockquote type="cite">Ok, a bit more progress. There is still quite a few things to puzzle out.<br><br>I don't want to pound the VM with a ticker update every millisecond.<br>I don't have a nice way to schedule a wakeup event sometime in the future by using some generic pthread service.</blockquote><div><br></div><span class="Apple-style-span" style="color: rgb(51, 76, 102); font-family: 'Andale Mono'; font-size: 11px; line-height: 11px; ">You use the libSystem.dylib API? (where&nbsp;</span><span class="Apple-style-span" style="color: rgb(51, 76, 102); font-family: 'Andale Mono'; font-size: 11px; line-height: 11px; ">/usr/lib/libpthread.dylib points to)?</span></div><div>I'll see it when I get your code.</div><div><font class="Apple-style-span" color="#334C66" face="'Andale Mono'" size="3"><span class="Apple-style-span" style="font-size: 11px; line-height: 11px;"><br></span></font><blockquote type="cite">I therefore re-implemented the logic that clock checks every message send and backward jump to<br>check the current time and consider the next wakeup time. Likely we'll have to tune this, or perhaps 0.5% of<br>run time devoted to looking at the clock is just good enough programming.</blockquote><div><br></div><div>Or use it now, and return to it in a years time when our insight in this problem has improved.</div><div>Unless it involves extensive coding.</div><div><br></div><div>Amit Singh might have a good solution handy. I am looking through&nbsp;<a href="http://www.kernelthread.com">http://www.kernelthread.com</a> right now.</div><div><br></div><blockquote type="cite">Given all that I'm still dealing with having the second instance of the interpreter unlock the global vm logic so plugins can load in a clean manner.<br>I did stick in a change where it does halt the 2nd instance when there is no squeak process runnable and no pending Delay but that isn't a correct solution.<br><br>However I now am at the point where I can do<br><br>HydraVM loadAndRunNewImage: 'test.image'<br><br>HydraVM doIt: 'Transcript show: 10000 factorial' at: 2<br><br></blockquote><div>Wow!</div><div><br></div><br><blockquote type="cite">Which then prints a really big number, later.<br>I can of course interact with the main interpreter instance, and also do the 10000 factorial,<br>which then makes my machine run at 200% cpu and whirl the fans to high.</blockquote><div><br></div><div>Great. And yes, it will always involve having the fans go full blast with 4/8 cores.</div><br><blockquote type="cite">Going forward I need some folks who can compile the VM and do some testing.</blockquote><div><br></div><div>That is what I can do well. I always find bugs.</div><div><br></div><div><br></div></div></body></html>