bug fixes from elz and utcsrgv!thomson
[unix-history] / usr / src / sys / kern / kern_proc.c
index 583af04..53cab4f 100644 (file)
@@ -1,4 +1,4 @@
-/*     kern_proc.c     4.23    82/02/27        */
+/*     kern_proc.c     4.25    82/04/02        */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
@@ -391,7 +391,7 @@ setregs()
        register i;
        long sigmask;
 
        register i;
        long sigmask;
 
-       for (rp = &u.u_signal[0], sigmask = 1L; rp < &u.u_signal[NSIG];
+       for (rp = &u.u_signal[1], sigmask = 1L; rp < &u.u_signal[NSIG];
            sigmask <<= 1, rp++) {
                switch (*rp) {
 
            sigmask <<= 1, rp++) {
                switch (*rp) {
 
@@ -409,7 +409,7 @@ setregs()
                        if ((int)*rp & 1)
                                u.u_procp->p_siga0 |= sigmask;
                        else
                        if ((int)*rp & 1)
                                u.u_procp->p_siga0 |= sigmask;
                        else
-                               u.u_procp->p_siga1 &= ~sigmask;
+                               u.u_procp->p_siga0 &= ~sigmask;
                        if ((int)*rp & 2)
                                u.u_procp->p_siga1 |= sigmask;
                        else
                        if ((int)*rp & 2)
                                u.u_procp->p_siga1 |= sigmask;
                        else
@@ -563,8 +563,8 @@ done:
                         */
                        (void) spgrp(q, -1);
                }
                         */
                        (void) spgrp(q, -1);
                }
-       wakeup((caddr_t)p->p_pptr);
        psignal(p->p_pptr, SIGCHLD);
        psignal(p->p_pptr, SIGCHLD);
+       wakeup((caddr_t)p->p_pptr);
        swtch();
 }
 
        swtch();
 }