From 5073e68fa3d069ffbddc5e32baeb28409710d943 Mon Sep 17 00:00:00 2001 From: David Xu Date: Sun, 27 Apr 2003 04:32:40 +0000 Subject: [PATCH] unlock sched_lock at right time. --- sys/kern/kern_kse.c | 2 +- sys/kern/kern_thread.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_kse.c b/sys/kern/kern_kse.c index ac7daa455bd..6502e23a668 100644 --- a/sys/kern/kern_kse.c +++ b/sys/kern/kern_kse.c @@ -1681,9 +1681,9 @@ thread_userret(struct thread *td, struct trapframe *frame) else upcalls += kg2->kg_numupcalls; } - mtx_unlock_spin(&sched_lock); if (upcalls >= max_threads_per_proc) break; + mtx_unlock_spin(&sched_lock); p->p_maxthrwaits++; msleep(&p->p_numthreads, &p->p_mtx, PPAUSE|PCATCH, "maxthreads", NULL); diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c index ac7daa455bd..6502e23a668 100644 --- a/sys/kern/kern_thread.c +++ b/sys/kern/kern_thread.c @@ -1681,9 +1681,9 @@ thread_userret(struct thread *td, struct trapframe *frame) else upcalls += kg2->kg_numupcalls; } - mtx_unlock_spin(&sched_lock); if (upcalls >= max_threads_per_proc) break; + mtx_unlock_spin(&sched_lock); p->p_maxthrwaits++; msleep(&p->p_numthreads, &p->p_mtx, PPAUSE|PCATCH, "maxthreads", NULL);