Dan Sugalski <[EMAIL PROTECTED]> wrote:

> No. If any object has a destructor it should be called as the last
> interpreter is shut down. We're not guaranteeing dead-on immediate
> destruction, or if the timely flag isn't set timely destruction, but we
> *are* guaranteeing eventual destruction.

Oha. That explains the reasoning. That adds a third category to
"destruction" IMHO:

1) timely destruction on scope exits
2) eventual destruction on exit of interpreters
3) memory destruction for leak tests and such or for intermediate
   interpreters.

For 1) we have opcode support C<needs_destroy>. 2) seems to be the case
where IO objects jump in - and HLL destructors.

> We don't need to free memory, but we do need to call destructors.

So we'd better separate 2) and 3) This would simplify destruction
ordering and speedup interpreter shutdown.

>                                       Dan

leo

Reply via email to