AbtEventDependents in AbtCLDTAdditions is holding on to my closed windows

44 views
Skip to first unread message

Richard Sargent

unread,
Sep 26, 2019, 8:07:45 PM9/26/19
to VA Smalltalk
AbtEventDependents is a weak-keyed dictionary. The only keys it contains are GbtValueHolder instances which are only referenced from the window's dependencies. GbtValueHolder subclasses Object, so uses this mechanism to manage its dependents. That I understand.

But, it appears that such a structure will never get garbage collected because of these dependencies.

I must be doing something wrong, so what is it? What should I be doing when I close the window to release these dependencies?

Richard Sargent

unread,
Sep 27, 2019, 5:54:25 PM9/27/19
to VA Smalltalk
On Thursday, September 26, 2019 at 5:07:45 PM UTC-7, Richard Sargent wrote:
AbtEventDependents is a weak-keyed dictionary. The only keys it contains are GbtValueHolder instances which are only referenced from the window's dependencies. GbtValueHolder subclasses Object, so uses this mechanism to manage its dependents. That I understand.

But, it appears that such a structure will never get garbage collected because of these dependencies.

It looks like #initializeAttributeConnections should be counterbalanced by a #releaseAttributeConnections
releaseAttributeConnections
    " Private - release my attribute connection dependencies. "

    self attributeConnections do: [:each | each release].
called from #release
release

    self releaseAttributeConnections.
    ^super release.

This appears to work for my scenario. Whether it works for "normal" attribute classes remains to be seen.

Instantiations, any comments or thoughts on this approach?

Seth Berman

unread,
Sep 28, 2019, 5:06:51 PM9/28/19
to VA Smalltalk
Hi Richard,

I can forward to our abt parts experts, I personally am not one so I can't say.
We have a full queue of customer support going on right now, so I will add a case for you
with your findings/question and get you in the queue.

- Seth

Richard Sargent

unread,
Sep 28, 2019, 11:16:31 PM9/28/19
to VA Smalltalk
Thanks, Seth. That's all I could ask.

--
You received this message because you are subscribed to a topic in the Google Groups "VA Smalltalk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/va-smalltalk/9Bl6zSIFXO8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to va-smalltalk...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/7c3eba8a-0336-40a7-8003-74ac9063f35e%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages