On 24-05-2012 18:06, Andrei Alexandrescu wrote:
On 5/24/12 9:57 AM, Alex Rønne Petersen wrote:
On 24-05-2012 16:54, Andrei Alexandrescu wrote:
On 5/24/12 9:28 AM, Alex Rønne Petersen wrote:
The GC should (and probably does) assume at shutdown that all objects
are unreferenced, and therefore reclaim and finalize them.

They may refer to one another.

Andrei


Doesn't matter: Nothing is guaranteed about order of finalization (and
this is reasonable). Thus, the finalizers can be run in any arbitrary
order. The important point here is that they are run *at all*.

It does matter because a destructor may use an object that has just been
destroyed.

Andrei


No, the docs specifically state that this is invalid (and it currently throws InvalidMemoryOperationError in most cases).

Whether it *should* be allowed is arguable, but it isn't currently, both in docs and impl.

--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org

Reply via email to