From 97ecb163cb8387050472c30318634ad60b5c6219 Mon Sep 17 00:00:00 2001 From: jeff Date: Fri, 11 Apr 2003 19:24:37 +0000 Subject: - Call sched_exit_{kse,thread} and sched_fork{kse,thread} so that thr works with ULE. This was not strictly required by sched_4bsd. --- sys/kern/kern_thr.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sys/kern') diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index 6e277da..c2a2103 100644 --- a/sys/kern/kern_thr.c +++ b/sys/kern/kern_thr.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -89,6 +90,7 @@ thr_exit1(void) ke->ke_state = KES_UNQUEUED; ke->ke_thread = NULL; kse_unlink(ke); + sched_exit_kse(TAILQ_NEXT(ke, ke_kglist), ke); /* * If we were stopped while waiting for all threads to exit and this @@ -106,6 +108,7 @@ thr_exit1(void) #endif td->td_ksegrp = NULL; td->td_last_kse = NULL; + sched_exit_thread(TAILQ_NEXT(td, td_kglist), td); thread_stash(td); #if defined(__i386__) || defined(__sparc64__) @@ -178,6 +181,9 @@ thr_create(struct thread *td, struct thr_create_args *uap) td0->td_kse = ke0; ke0->ke_thread = td0; + sched_fork_kse(td->td_kse, ke0); + sched_fork_thread(td, td0); + TD_SET_CAN_RUN(td0); if ((uap->flags & THR_SUSPENDED) == 0) setrunqueue(td0); -- cgit v1.1