When I see words like JUMPENV_PUSH, my instincts tell me that what’s really happening here is that your various threads are conflicting with one another in relation to the surrounding environment. The Perl packages in question won’t be prepared to consider if, for example, two or more instances of itself are engaged in a race-condition, both of them attempting to do the same thing at the same time.
You may need to add some kind of a mutual-exclusion mechanism surrounding some of your calls, e.g. to create a new temporary file, in order to be sure that multiple threads do not attempt to do these things at precisely the same instant. Both the unpredictability of these happenings, and the severity of them (segfault ...) seem to support this hypothesis. In other contexts, we would say that these calls “are not thread-safe,” and it is most certainly the case that they were never designed to be.
In reply to Re: Complex and reliable signal handling.
by Anonymous Monk
in thread Complex and reliable signal handling.
by vsespb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |