Göran, if I remember correctly, the problem you had was a MagmaSession cleanUp had been run (to dereference MagmaSessions from old MethodContexts) so they could be garbage collected. This method becomeForwards the sessions to nil. Then, later, some proxy's referencing those sessions were "activated".
So what is the root problem here and what should be the solution? Maybe get rid of the need for MagmaSession>>#cleanUp, so that MagmaSessions get GC'd on their own in the first place? A session naturally GC'd would mean no possibility of any proxy's referencing it.
Chasing pointers on some of my stray MagmaSessions show they all reference from a chain originating in the "EventManager" and finally directly linked from a MethodContext. The cleanUp method simply nils out the MethodContext's #receiver: and that does the trick.
So what is the EventManager and why does it hold on to these MethodContexts? If someone knows a solution I'd be happy to include it in r40.
thanks.. Chris
On 5/9/07, Göran Krampe goran@krampe.se wrote:
Hi Keith!
We have stumbled over this problem in Gjallar work from time to time - but only during development. I ended up inventing a doit to toast all those Processes - need to nil out the context IIRC - whenever it occurred. But it can be painful because with a couple of thousand Processes the system gets a tad painful to even type in.
It would be nice if we could get rid of this - it is annoying. :)
regards, Göran
Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma