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
