summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2003-02-17 14:41:22 +0000
committerdavidxu <davidxu@FreeBSD.org>2003-02-17 14:41:22 +0000
commit0330c190211959d649ab98e1e3d6a3e2071c6a1e (patch)
treeb07c9a803001c9a3ad13efb5ecd90f9ab915fd3c /sys
parent4461b7347a5ac842d81acb7d173b529b01f08cfc (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/kern/kern_switch.c2
-rw-r--r--sys/kern/kern_thread.c2
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;
OpenPOWER on IntegriCloud