AbtEventDependents in AbtCLDTAdditions is holding on to my closed windows

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

AbtEventDependents in AbtCLDTAdditions is holding on to my closed windows

Richard Sargent
Administrator
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?

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/974c4968-c2f5-4af9-8458-9d8cdde5bb26%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: AbtEventDependents in AbtCLDTAdditions is holding on to my closed windows

Richard Sargent
Administrator
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?


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

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/74b0e5db-9f64-4923-8396-5222a13e89dd%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: AbtEventDependents in AbtCLDTAdditions is holding on to my closed windows

Seth Berman
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

On Friday, September 27, 2019 at 5:54:25 PM UTC-4, Richard Sargent wrote:
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?


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

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/7c3eba8a-0336-40a7-8003-74ac9063f35e%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: AbtEventDependents in AbtCLDTAdditions is holding on to my closed windows

Richard Sargent
Administrator
Thanks, Seth. That's all I could ask.

On Sat, Sep 28, 2019, 14:06 'Seth Berman' via VA Smalltalk <[hidden email]> wrote:
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

On Friday, September 27, 2019 at 5:54:25 PM UTC-4, Richard Sargent wrote:
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?


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

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/7c3eba8a-0336-40a7-8003-74ac9063f35e%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/CAGNapEMPPotvJV6B_1Y9MFGfooJm-4UYWRSeBaPL7uQmmPKvOg%40mail.gmail.com.