[ANN] MessageCapture
Klaus D. Witzel
klaus.witzel at cobss.com
Sun Oct 15 13:06:38 UTC 2006
On Sun, 15 Oct 2006 14:56:38 +0200, Bert Freudenberg wrote:
> Actually, you could fork the VM, establish a communication channel (I've
> used named pipes on Unix, works without VM modification), send the
> future message over there, wait for the result. As long as no full GC
> happens in either process, this is even memory efficient on systems
> using copy-on-write memory pages.
Aha, this is how to avoid serialization of context(s), method(s) and other
resistant factors.
> Offloading to a different machine is a bit more involved because you
> might have to clone the execution state in the master image first.
I agree. So whatever the desired path to the solution, doesn't
serialization ("clone the execution state") presuppose that at least the
compiled methods are in sync between any pair of involved systems.
/Klaus
> - Bert -
>
> Am 15.10.2006 um 14:46 schrieb Klaus D. Witzel:
>
>> Hi Michael,
>>
>> how would you execute [ some long computation ] on another processor or
>> another computer.
>>
>> On another processor, Squeak does't work because its VM is neither
>> reentrant nor multiprocessing-capable (sorry for using terms which are
>> > 30 years old ;-)
>>
>> So it would be interesting to learn how you plan to offload [ some long
>> computation ] to another computer (or, FWIW, to another process running
>> on the same computer).
>>
>> /Klaus
>>
>> On Sun, 15 Oct 2006 08:56:48 +0200, Michael wrote:
>>
>>> I've been using a class called "MessageCapture" which lets you receive
>>> messages sent to an object. It's caused me no end of agony trying to
>>> get it working, so I thought I'd share my agony with the community :-P.
>>>
>>> Source code here: http://www.squeaksource.com/DPON.html - click on
>>> "latest", MessageCapture-mvdg.2.mcz.
>>>
>>> It's released under the.. umm... MIT license.
>>>
>>> Also included is a Future class, which lets you do things like:
>>>
>>> result := Future doing: [ some long computation ].
>>>
>>> This will return immediately, forking off a process to do the
>>> computation and replacing "result" with the result when it's finished.
>>>
>>> Some of the tests fail. Any hints / tips / guidance is very welcome!
>>> Especially as to how to capture #== and #class. Those two messages are
>>> sent by the interpreter even before doing a message lookup.
>>>
>>> Michael.
>>>
>>>
>>>
>>
>>
>>
>
>
>
More information about the Squeak-dev
mailing list
|