Mantis - Croquet
|Viewing Issue Advanced Details|
|ID:||Category:||Severity:||Reproducibility:||Date Submitted:||Last Update:|
|5708||Hedgehog||major||always||01-07-07 21:17||01-07-07 21:17|
|ETA:||none||Fixed in Version:|
|Summary:||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.
|Steps To Reproduce:|
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.
|There are no notes attached to this issue.|