Use the Config module to find out whether you have reliable signals:
use Config;
print "Hurrah!\n" if $Config{d_sigaction};
RESULT: Hurrah!
To determine whether your interrupted system calls will automatically restart, look at your system's C signal.h include file: % egrep 'SAV_(RESTART|INTERRUPT)' /usr/include/*/signal.h
RESULT:
/usr/include/asm/signal.h: * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
/usr/include/asm/signal.h: * SA_RESTART flag to get restarting signals (which were the default long ago)
/usr/include/asm/signal.h:#define SA_RESTART 0x10000000
/usr/include/asm/signal.h:#define SA_INTERRUPT 0x20000000 /* dummy -- ignored */
Basically I do not know what to do. I've tried those examples that you gave me link to, but it still gives me the warning. However, when I used $SIG{INT} = 'IGNORE'; I managed to delay the interruption with 2 seconds.
UPDATE: I found out that if I'm running a single process/thread it works. It seems like the reasoning from crashing comes from the fact that I fork another process in the background. Do I have to put some handlers inside this fork aswell? Or is there any signal for "children" that I can use ?
In reply to Re^2: How to create private signals? (or block interruption)
by rapide
in thread How to create private signals? (or block interruption)
by rapide
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |