Re: threads change

[email protected] (Elizabeth Mattijsen) Tue, 18 Jul 2006 17:08:31 +0200
Newsgroups perl.perl5.porters,perl.ithreads
Message-ID <p06230932c0e2a9a5f444@[192.168.56.6]>
At 6:38 AM -0700 7/18/06, Artur Bergman wrote:
>On Jul 18, 2006, at 3:39 AM, Elizabeth Mattijsen wrote:
>
>>At 2:29 AM -0700 7/18/06, Artur Bergman wrote:
>>>On Jul 18, 2006, at 2:15 AM, Elizabeth Mattijsen wrote:
>>>
>>>>At 2:07 AM -0700 7/18/06, Artur Bergman wrote:
>>>>>On Jul 18, 2006, at 1:52 AM, Elizabeth Mattijsen wrote:
>>>>>
>>>>>>Trying to do this by override CORE::exit is not a option, as 
>>>>>>you can only do this at compile time (as far as I know).
>>>>>>
>>>>>>
>>>>>>So I would favour in extra, cloned global variable that would 
>>>>>>be checked by CORE::Exit, which would indicate whether to 
>>>>>>really exit(), or do a threads->exit().  And have an easy way 
>>>>>>to change the (cloned) setting of this variable with a threads 
>>>>>>class method, e.g. thread->exit_exits_thread_only;
>>>>>
>>>>>You can use CORE::exit if you make sure you set it before you 
>>>>>load the external module.
>>>>
>>>>True, but generally you just "use" code in your program, which 
>>>>means the code is used by the main thread already, before you 
>>>>start the thread.
>>>>
>>>>Which is the reason I once wrote Thread::Use.
>>>>
>>>>
>>>>Liz
>>>
>>>Eh,
>>>
>>>if you use a module that changes CORE::exit before you use any 
>>>other module you are set to go.
>>
>>Well, that's what the "threads" module should do then.
>>
>
>
>I disagree, the threads module shouldn't change process level 
>semantics per default.

That's not what I propose.  It's just that I think "threads" should 
make it easy to change the semantics on a per thread basis.


>Seriously, a thread is not a process, a process is not a thread. Add 
>thread exit if you want, but exit should exit.

Unless, you as a developer, decides to use an external module that 
does an exit(), and you want it to just exit the thread.


Liz