On Thu, 20 Jul 2006, Jerry D. Hedden wrote:
> > I don't understand the reasoning why die() outside an eval block
> > should be treated differently from the exit(). You can use all the
> > same reasoning that it should terminate the application as you can
> > for the exit() case.
> 
> Let me be more detailed.
> 
> First of all, a thread executes inside an eval via call_sv:
> len = (int)call_sv(thread->init_function, thread->gimme|G_EVAL);
> 
> Now, if the thread executes a 'die', the 'die' does whatever it
> normally does, including executing any die handler, and then the
> thread returns from the call_sv.

I understand all this, and I realize that we may need to keep it this
way for backward compatibility.  I'm just arguing that the implicit
G_EVAL context for thread functions seems misguided if we think that
exit() should still terminate the application.  The user should
set up their own eval block if a fatal die() should be trapped.

Tired mantra: the same arguments as for exit apply.

Anyways, I'm getting a bit tired of discussing this.  I support
keeping things as is in the name of backwards compatibility, it
just feels like the original design was not well thought through.

Cheers,
-Jan


Reply via email to