On 23 December 2011 05:19, Christopher Oliver current.input.port@gmail.com wrote:
On Thu, 22 Dec 2011 16:24:17 -0500 "David T. Lewis" lewis@mail.msen.com wrote:
I think I found the underlying cause of all this grief, which in fact has nothing to do with the user interrupt handler. The problem is that the weak finalization process is very busy due to thrashing between the VM and the image. The VM notifies the image when weak references need to be cleaned up, and the weak finalization process responds by creating new weak references for the VM to clean up, etc etc etc ...
A fix is posted to the inbox in Collections-dtl.466
As Andreas observes, creating a smarter user interrupt handler is not at all trivial. But creating a smarter weak finalization process is really easy :)
I look forward to trying this out. I still think down the road, we could buy some additional generality/cleverness in regards to whom we interrupt; I think this is what Elliott was suggesting, though I get nervous about looking at any commercial code (did he say that was from VW?) for intellectual property reasons.
As a general principle, that's laudable. Cog is, however, MIT licensed (http://www.mirandabanda.org/cogblog/about-cog/) so in this case there's no need to fret.
frank
I have an idea of using small identity dictionary of interrupt actions by keystroke to use in EventSensor>>processEvents, but I need to think on this more; it's not even half baked yet. There really is a lot of indirection between seeing the key stroke and knocking down a process.
Happy whatever you may celebrate!
-- Christopher Oliver current.input.port@gmail.com