On Mon, 18 Apr 2011 08:27:25 -0400, Steven Schveighoffer <schvei...@yahoo.com> wrote:

On Sun, 17 Apr 2011 14:08:29 -0400, Michel Fortin <michel.for...@michelf.com> wrote:

On 2011-04-17 05:22:10 -0400, Fawzi Mohamed <fa...@gmx.ch> said:

All this comes back again to having several pools, showing how useful
such a primitive is.

Speaking of rethinking the GC and its primitives, is there a way currently to tell the GC to track pointers to a manually allocated block and assign a callback for when the GC wants that block to be finalized and deallocated? I'm kinda going to need that if I am to bring decent garbage-collected Objective-C objects in D.


It's coarsely grained, but you can intercept all finalization calls:

http://www.digitalmars.com/d/2.0/phobos/core_runtime.html#collectHandler

You'd have to figure out some way to filter only the ones you care about.


Also, there's an undocumented, non-published (i.e. not in object.di) function that allows you to attach an event handler when an object is disposed:

https://github.com/D-Programming-Language/druntime/blob/master/src/object_.d#L2394

I think Bill Baxter's WeakRef object used it. I'm not sure how supported it is, or why it isn't public.

-Steve

Reply via email to