diff options
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r-- | sys/kern/kern_sig.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 4f9f516..7b51b68 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -189,12 +189,19 @@ cursig(struct thread *td) void signotify(struct proc *p) { + struct kse *ke; + struct ksegrp *kg; PROC_LOCK_ASSERT(p, MA_OWNED); mtx_lock_spin(&sched_lock); if (SIGPENDING(p)) { p->p_sflag |= PS_NEEDSIGCHK; - p->p_kse.ke_flags |= KEF_ASTPENDING; /* XXXKSE */ + /* XXXKSE for now punish all KSEs */ + FOREACH_KSEGRP_IN_PROC(p, kg) { + FOREACH_KSE_IN_GROUP(kg, ke) { + ke->ke_flags |= KEF_ASTPENDING; + } + } } mtx_unlock_spin(&sched_lock); } |