Author: jilles
Date: Wed Nov 11 23:13:24 2009
New Revision: 199205
URL: http://svn.freebsd.org/changeset/base/199205

Log:
  sh: Use sigaction instead of signal/siginterrupt combination.

Modified:
  head/bin/sh/trap.c

Modified: head/bin/sh/trap.c
==============================================================================
--- head/bin/sh/trap.c  Wed Nov 11 22:37:17 2009        (r199204)
+++ head/bin/sh/trap.c  Wed Nov 11 23:13:24 2009        (r199205)
@@ -244,7 +244,8 @@ void
 setsignal(int signo)
 {
        int action;
-       sig_t sig, sigact = SIG_DFL;
+       sig_t sigact = SIG_DFL;
+       struct sigaction sa;
        char *t;
 
        if ((t = trap[signo]) == NULL)
@@ -320,9 +321,10 @@ setsignal(int signo)
                case S_IGN:     sigact = SIG_IGN;       break;
        }
        *t = action;
-       sig = signal(signo, sigact);
-       if (sig != SIG_ERR && action == S_CATCH)
-               siginterrupt(signo, 1);
+       sa.sa_handler = sigact;
+       sa.sa_flags = 0;
+       sigemptyset(&sa.sa_mask);
+       sigaction(signo, &sa, NULL);
 }
 
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to