On Wednesday, 7 November 2012 at 23:26:46 UTC, eskimo wrote:
Well I don't think it is a common pattern to create an object,
connect
it to some signal and drop every reference to it.
Ok, example: suppose we have a tabbed interface and on closing a
tab we want to free model data, displayed in the tab and we
already have standard IDisposable.Dispose() method, so:
_tab.closed.connect((sender,args)=>this.Dispose());
If the closure dies prematurely, it won't free resources at all
or at the right time. Although you currently keep a strong
reference to closures, you claim it's a bug rather than feature.
You fix deterministic sloppiness of memory leaks at the cost of
undeterministic sloppiness of prematurely dying event handlers
(depending on the state of the heap).