diff options
author | davidxu <davidxu@FreeBSD.org> | 2003-02-17 14:41:22 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2003-02-17 14:41:22 +0000 |
commit | 0330c190211959d649ab98e1e3d6a3e2071c6a1e (patch) | |
tree | b07c9a803001c9a3ad13efb5ecd90f9ab915fd3c /sys | |
parent | 4461b7347a5ac842d81acb7d173b529b01f08cfc (diff) | |
download | FreeBSD-src-0330c190211959d649ab98e1e3d6a3e2071c6a1e.zip FreeBSD-src-0330c190211959d649ab98e1e3d6a3e2071c6a1e.tar.gz |
Move code for detecting PS_NEEDSIGCHK into thread_schedule_upcall,
I think it is a better place to handle it.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_kse.c | 2 | ||||
-rw-r--r-- | sys/kern/kern_switch.c | 2 | ||||
-rw-r--r-- | sys/kern/kern_thread.c | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/kern_kse.c b/sys/kern/kern_kse.c index 183b607..b682320 100644 --- a/sys/kern/kern_kse.c +++ b/sys/kern/kern_kse.c @@ -1418,6 +1418,8 @@ thread_schedule_upcall(struct thread *td, struct kse_upcall *ku) ku->ku_owner = td2; td2->td_upcall = ku; td2->td_flags = TDF_UPCALLING; + if (td->td_proc->p_sflag & PS_NEEDSIGCHK) + td2->td_flags |= TDF_ASTPENDING; td2->td_kse = NULL; td2->td_state = TDS_CAN_RUN; td2->td_inhibitors = 0; diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c index ea4e5ba..5cefb1c 100644 --- a/sys/kern/kern_switch.c +++ b/sys/kern/kern_switch.c @@ -220,8 +220,6 @@ kse_reassign(struct kse *ke) kg->kg_last_assigned = td; td->td_kse = ke; ke->ke_thread = td; - if (td->td_proc->p_sflag & PS_NEEDSIGCHK) - td->td_flags |= TDF_ASTPENDING; sched_add(ke); CTR2(KTR_RUNQ, "kse_reassign: ke%p -> td%p", ke, td); return; diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c index 183b607..b682320 100644 --- a/sys/kern/kern_thread.c +++ b/sys/kern/kern_thread.c @@ -1418,6 +1418,8 @@ thread_schedule_upcall(struct thread *td, struct kse_upcall *ku) ku->ku_owner = td2; td2->td_upcall = ku; td2->td_flags = TDF_UPCALLING; + if (td->td_proc->p_sflag & PS_NEEDSIGCHK) + td2->td_flags |= TDF_ASTPENDING; td2->td_kse = NULL; td2->td_state = TDS_CAN_RUN; td2->td_inhibitors = 0; |