Jerry D. Hedden wrote:
> First of all, do we have a consensus on changing anything?
> I think so: Rafeal, Artur, Liz and Jan are in favor of the
> general concept of exit() terminating the app, and
> threads->exit() terminating the thread. Any dissensions?
Dave Mitchell replied:
> No, I agree (it was originally my suggestion).
I'm with Dave, BTW. I think 'exit()' in a thread should just
terminate the thread.
I know that Artur's mantra is 'threads are threads and
processes are processes', but I don't view it that way for
Perl iThreads. For me, thread 0, the 'main' thread, isn't
really a thread; it's the main controller for the process,
and all 'created' threads are subordinate to it. I feel
that the 'main' thread should be in control, and not be
subjugated to the whims (or poor programming) in a thread.
Jerry D. Hedden wrote:
> Next is the question of this being overridable such that
> exit() can be made to just terminate just the thread.
> Liz and Artur are in on this. Others?
Dave Mitchell replied:
> I'm not convinced of the need. Why can't the user just do
> BEGIN {
> package CORE::GLOBAL;
> sub exit { thread->exit }
> }
> if they really wish to override the module author's wishes?
If we do change the current thread exit functionality, I
would prefer that overriding the default behavior should be
supported explicitly by the module as per my original
suggestions (i.e., use threads 'exit' => 'threads_only';, and
$thr->create({'exit' => 'thread'}, ...); ).