Note that the above is not silent if the die has a chance to execute.
Yes, but it turns out that is exactly what he was doing. At least in his experiments:
There are other ways. For example, there were a bunch of versions of perl (most of the 5.8.x series from memory) that (on Windows) silently exited if they ran "Out of memory!" never producing that error message. I had that happen a lot.
Also, hard to demo since dave-the-m changed the regex engine from recursive to iterative, but previously running a pathological regex in a thread could run it out of C-stack and it would silently disappear. There aren't many things left in perl that consume stack any more, but I wouldn't mind betting that if we could find one, that the thread would still terminate silently.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] |
Recursive calling of special subs (AUTOLOAD, DESTROY) can eat up the C stack.
| [reply] |
perl -Mthreads -E"AUTOLOAD{ &{ $_[0] } }; async{ fred(); }->join; say
+'done'"
Though it might take a very long time.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] |