Mantis - Croquet
Viewing Issue Advanced Details
5708 Hedgehog major always 01-07-07 21:17 01-07-07 21:17
howardstearns  
 
normal  
new  
open  
none    
none  
0005708: makePointer creates uncollectable garbage memory leak
CroquetEvent>>makePointer creates a TRay on-island. This is used with dynamic extent by several of the event handlers which occur quite frequently.

However, TRay is a TFrame and so it gets registered in the (strong Dictionary) island nameMap. So the TRay/pointers never get garbage collected.

This prevents long-lived Croquet sessions.
Wisconsin-hrs.118 defines some KSDKEvent subclasses of CroquetEvent that immediately does an #unregister: of the TRay/pointer. TIsland>>unregister: is in the *Wisconsin-SDK extention category.

This hack works only because nothing in our application tries to future send to the TRay/pointer from the ocean. But it isn't a general solution. That may require either a (hard) fix to 3298, or a redesign of event handling.
child of 0003298confirmed  futureSend futures never go away 

There are no notes attached to this issue.