Closed girba closed 4 years ago
The simplest solution is to unregister the debugger. However, it would still be useful to try to salvage it. Perhaps @theseion can have input on it?
What do I need to do? Install TaskIT2 from the catalog?
Thanks for looking at it! In a Pharo 7, run this:
Metacello new
baseline: 'TaskIt';
repository: 'github://sbragagnolo/taskit:v1.0.1';
load.
[ 1/0 ] future onFailureDo: [ :ex | ex debug ]
Well, I can see that this builds on my code but they use weak references to the original process and its contexts, which is exactly what you mustn't do if you intend to have access to it later in the debugger. This is an architectural issue in TaskIt and not simple to fix.
Ok, then is it better to simply not use the dedicated debugger?
Yes, I think so. At least until that problem has been fixed.
BTW, I just checked my original implementation and I really did use hard references. I guess they tried to prevent garbage accumulation.
I'm not 100% into the issue, but I know in the past Taskit we worked a lot on avoiding memory leaks. The problem is that a leaking reference to a context/process will leak tons of objects. This is also produced by leaing blocks.
fixed
Evaluate this:
==>