Bill Allombert on Tue, 06 Dec 2005 21:17:49 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: handling interrupt


On Mon, Dec 05, 2005 at 04:24:10PM -0800, Ilya Zakharevich wrote:
> On Mon, Dec 05, 2005 at 04:40:09PM -0500, Igor Schein wrote:
> > Hi,
> > 
> > Don't try this in a gp session you care about:
> > 
> > k=0;while(k++,print(k);system("sleep 1"))
> > 
> > Now that's what I call a true infinite loop, the one you cannot break
> > out of.
> 
> ???  kill -INT $GP_PID

I had the same idea, but it does not work for me (on GNU/Linux).

The system(3) man page states that:
       
    system()  executes a command specified in command by calling /bin/sh -c
    command, and returns after the command has been completed.  During exe-
    cution  of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT
    will be ignored.

So it is not better here than typing ^C and hoping that does not happen
during the call to system(3).

According to the very usefull FreeBSD manpages database 
<http://www.freebsd.org/cgi/man.cgi>, all BSD based systems have
the same behaviour. The SunOS 5.9 manpage is unclear on this point.

Cheers,
Bill.