Clean way to tell whether a destructor is called by the GC
ponce via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue May 12 05:53:58 PDT 2015
On Tuesday, 12 May 2015 at 12:31:35 UTC, Adam D. Ruppe wrote:
> Let me suggest a completely different option: make a destructor
> that works while the GC is running by managing the resources
> manually in both construction and destruction.
I see, but not all ressources can be disposed by any thread. I'd
prefer to make it an error. Also, relying on GC destructors can
make a program work by mistake.
> isn't *all* reference types that are problematic to access, it
> is just GC managed references. So anything from a C function is
> cool.
>
> Otherwise, accessing the runtime variable seems ok to me like
> the link said, hacky sure, but it'd work.... nothing else comes
> to mind, other than using a separate dispose() method when you
> delete it manually and leave the dtor for only the GC.
I already have such a dispose() function.
The problem is that to support Unique! and scoped! and friends,
the destructor must call dispose(). Thus my need for a way to
separate the GC-induced destructors within dispose() or ~this
(same problem).
More information about the Digitalmars-d-learn
mailing list