D 2015/2016 Vision?
Jonathan M Davis via Digitalmars-d
digitalmars-d at puremagic.com
Thu Oct 8 09:10:20 PDT 2015
On Thursday, 8 October 2015 at 15:51:44 UTC, Ola Fosheim Grøstad
wrote:
> So I don't think there are _good_ reasons to call
> finalizers/destructors on the GC heap, it's a sign of a bad
> model where the responsibilities are unclear. GC objects should
> only "own" memory on the GC heap.
As far as I can tell, finalizers are for when you either really
don't care when a non-GC resource gets cleaned up (which is
probably a bad design in any program that isn't fairly small) or
for cleaning up after you screw-up and you forget to call the
appropriate function on the object to tell it to free those
resources (be it call dispose or something else). In general,
finalizers are a sign of a problem. If all you have is the GC
heap, or if you need to be able to put an object that needs to
clean-up a non-GC resource inside of an object on the GC heap,
then you're kind of stuck, in which case, you do manual resource
cleanup and have a finalizer as backup, but it's definitely a
bandaid rather than an ideal solution. The potential need for
finalizers is definitely a con to dealing with a GC.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list