SCCS-vsn: sys/kern/kern_sig.c 6.12
-/* kern_sig.c 6.11 85/03/12 */
+/* kern_sig.c 6.12 85/03/13 */
#include "../machine/reg.h"
#include "../machine/pte.h"
#include "../machine/reg.h"
#include "../machine/pte.h"
goto out;
p->p_sig &= ~mask;
p->p_cursig = sig;
goto out;
p->p_sig &= ~mask;
p->p_cursig = sig;
+ psignal(p->p_pptr, SIGCHLD);
* If traced, always stop, and stay
* stopped until released by the parent.
*/
* If traced, always stop, and stay
* stopped until released by the parent.
*/
+ psignal(p->p_pptr, SIGCHLD);
case SIGSTOP:
if (p->p_flag&STRC)
continue;
case SIGSTOP:
if (p->p_flag&STRC)
continue;
+ psignal(p->p_pptr, SIGCHLD);
stop(p);
swtch();
continue;
stop(p);
swtch();
continue;
/*
* Put the argument process into the stopped
/*
* Put the argument process into the stopped
- * state and notify the parent via wakeup and/or signal.
+ * state and notify the parent via wakeup.
+ * Signals are handled elsewhere.
*/
stop(p)
register struct proc *p;
*/
stop(p)
register struct proc *p;
p->p_stat = SSTOP;
p->p_flag &= ~SWTED;
wakeup((caddr_t)p->p_pptr);
p->p_stat = SSTOP;
p->p_flag &= ~SWTED;
wakeup((caddr_t)p->p_pptr);
- /*
- * Avoid sending signal to parent if process is traced
- */
- if (p->p_flag&STRC)
- return;
- psignal(p->p_pptr, SIGCHLD);