diff options
author | julian <julian@FreeBSD.org> | 2002-09-15 23:52:25 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 2002-09-15 23:52:25 +0000 |
commit | c7e9e7e892b7375ea88920a969958f26747fb8c4 (patch) | |
tree | 1c66894d3eba07d04b596510c855c0bf9935c6b3 /sys/kern/kern_sig.c | |
parent | 4571d5bc4cd1fbf88217bbf7f736c24ae1232a5f (diff) | |
download | FreeBSD-src-c7e9e7e892b7375ea88920a969958f26747fb8c4.zip FreeBSD-src-c7e9e7e892b7375ea88920a969958f26747fb8c4.tar.gz |
Allocate KSEs and KSEGRPs separatly and remove them from the proc structure.
next step is to allow > 1 to be allocated per process. This would give
multi-processor threads. (when the rest of the infrastructure is
in place)
While doing this I noticed libkvm and sys/kern/kern_proc.c:fill_kinfo_proc
are diverging more than they should.. corrective action needed soon.
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); } |