Re: threads change
[email protected] (Elizabeth Mattijsen)
| Newsgroups | perl.perl5.porters,perl.ithreads |
|---|---|
| Message-ID | <p0623092ec0e250a317f5@[192.168.1.105]> |
At 11:07 PM +0200 7/17/06, Rafael Garcia-Suarez wrote: >On 14/07/06, Artur Bergman <[email protected]> wrote: >> >> If code is running in a thread or no doesn't mean it >>>> should have to act differently. >>>> >>>> I also think exiting from a thread is something that the >>>> developer should be aware of is happening, and that is >>>> why it is giving the warning. >>> >>> That is what started off the whole discussion: Exiting from >>> a thread was NOT issuing a warning. >> >>Then that should have been the fix. > >I come to think that a better idea wrt exit() is one that was proposed >during the referred thread: >let exit() exit the application (like before), and add threads->exit() >to exit the thread. Opinions? In light of the discussions again, I think that would make the most sense, with one addendum: to have an easy way inside a thread to make exit() to a threads->exit() instead. If you happen to have to use a module (over which you have no control) inside a thread that might do an exit(). And as the owner of the thread, you don't want it to exit the application. 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; Liz