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

Re: [LTP] fatal signal handling



>>>>> "aaron" == Aaron Laffin <laffinaw@acm.org> writes:

Hi

aaron>        Unlike  on  BSD  systems, signals under Linux are reset to
aaron>        their default  behavior  when  raised.   However,  if  you
aaron>        include  <bsd/signal.h>  instead of <signal.h> then signal
aaron>        is redefined as __bsd_signal and signal has the BSD seman<AD>
aaron>        tics.   Both versions of signal are library routines built
aaron>        on top of sigaction(2).

My debian system has this on the signal manpage, and it appears to
describe exactly what are you seing.

       Upon arrival of a signal with number signum the  following
       happens.   If the corresponding handler is set to SIG_IGN,
       then the signal is ignored.  If  the  handler  is  set  to
       SIG_DFL,  then the default action associated to the signal
       (see signal(7)) occurs.  Finally, if the handler is set to
       a  function  sighandler  then  the  signal  is blocked and
       sighandler is called with  argument  signum.   The  signal
       remains   blocked  during  the  execution  of  the  signal
       handler.


aaron> However, when I ran the following snippit, my rh6.2 system went into the
aaron> infinite recursion:

With your program I get also the recursive behaviour, but It matches
very well the manpage semantics.

Hope this helps.

Later, Juan.

PD.: I will also preffer to use sigaction and the test to behave the
     same in all the systems.

-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy