On Fri, 10 Oct 2003, Leopold Toetsch wrote:

> 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.

Sure, that works. We do need to be able to free up all an interpreter's
allocated memory, so we don't leak when we're embedded in some other
application, but running the destructors is definitely more important.

                                        Dan

Reply via email to