in reply to -e blocking due to unaccessable network fs
My speculation would be that the problem lies at a deeper level, which can be summarized as follows:
In short, if an alarm doesn't even work with PERL_SIGNALS=unsafe (which would be the case, if the system call is in a non-interruptable state), I think all you can do is to create a second process/thread which is responsible for killing the other process in case it blocks for longer than a specified period.
The problem with this approach is, though, that if the watching process is the child, it would kill the main program in case of timeout (usually undesired). Or, the other way round, if the child is doing the potentially blocking operation, you wouldn't easily have access to the handle from the main program in case the open succeeds...
Once you've solved this issue, you can start thinking about portability.
|
|---|