Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_sig.c
Show First 20 Lines • Show All 2,853 Lines • ▼ Show 20 Lines | #ifdef DIAGNOSTIC | ||||
* in init? XXX | * in init? XXX | ||||
*/ | */ | ||||
printf("Process (pid %lu) got signal %d\n", | printf("Process (pid %lu) got signal %d\n", | ||||
(u_long)p->p_pid, sig); | (u_long)p->p_pid, sig); | ||||
#endif | #endif | ||||
break; /* == ignore */ | break; /* == ignore */ | ||||
} | } | ||||
/* | /* | ||||
* If there is a pending stop signal to process | * If there is a pending stop signal to process with | ||||
* with default action, stop here, | * default action, stop here, then clear the signal. | ||||
* then clear the signal. However, | * Traced or exiting processes should ignore stops. | ||||
* if process is member of an orphaned | * Additionally, a member of an orphaned process group | ||||
* process group, ignore tty stop signals. | * should ignore tty stops. | ||||
*/ | */ | ||||
if (prop & SIGPROP_STOP) { | if (prop & SIGPROP_STOP) { | ||||
if (p->p_flag & (P_TRACED|P_WEXIT) || | if (p->p_flag & | ||||
(P_TRACED | P_WEXIT | P_SINGLE_EXIT) || | |||||
(p->p_pgrp->pg_jobc == 0 && | (p->p_pgrp->pg_jobc == 0 && | ||||
prop & SIGPROP_TTYSTOP)) | prop & SIGPROP_TTYSTOP)) | ||||
break; /* == ignore */ | break; /* == ignore */ | ||||
if (TD_SBDRY_INTR(td)) { | if (TD_SBDRY_INTR(td)) { | ||||
KASSERT((td->td_flags & TDF_SBDRY) != 0, | KASSERT((td->td_flags & TDF_SBDRY) != 0, | ||||
("lost TDF_SBDRY")); | ("lost TDF_SBDRY")); | ||||
return (-1); | return (-1); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 798 Lines • Show Last 20 Lines |