in reply to Re: How to create private signals? (or block interruption)
in thread How to create private signals? (or block interruption)
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 ?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: How to create private signals? (or block interruption)
by shmem (Chancellor) on Sep 03, 2008 at 15:22 UTC |