From owner-p4-projects Sun Sep 1 2: 0: 5 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1C65B37B401; Sun, 1 Sep 2002 01:59:57 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C79C037B400 for ; Sun, 1 Sep 2002 01:59:56 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 895EC43E65 for ; Sun, 1 Sep 2002 01:59:56 -0700 (PDT) (envelope-from mini@freebsd.org) Received: from freefall.freebsd.org (perforce@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g818xuJU037565 for ; Sun, 1 Sep 2002 01:59:56 -0700 (PDT) (envelope-from mini@freebsd.org) Received: (from perforce@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g818xuUZ037562 for perforce@freebsd.org; Sun, 1 Sep 2002 01:59:56 -0700 (PDT) Date: Sun, 1 Sep 2002 01:59:56 -0700 (PDT) Message-Id: <200209010859.g818xuUZ037562@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to mini@freebsd.org using -f From: Jonathan Mini Subject: PERFORCE change 16896 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=16896 Change 16896 by mini@mini_stylus on 2002/09/01 01:59:23 Save UTS context in kse_yield(2) and clear uc_busy, so that other upcall may take place later on. Affected files ... .. //depot/projects/kse/sys/kern/kern_proc.c#80 edit Differences ... ==== //depot/projects/kse/sys/kern/kern_proc.c#80 (text+ko) ==== @@ -279,12 +279,29 @@ int kse_yield(struct thread *td, struct kse_yield_args *uap) { + int error; + ucontext_t uc; + struct kse *ke; + /* Save UTS context. */ + ke = td->td_kse; + if (ke == NULL) + return (EFAULT); + error = copyin(&ke->ke_mailbox->km_context, &uc, sizeof(ucontext_t)); + if (error) + return (error); + thread_getcontext(td, &uc); + uc.uc_busy = 0; + error = copyout(&uc, &ke->ke_mailbox->km_context, sizeof(ucontext_t)); + if (error) + return (error); + + /* Abandon thread. */ PROC_LOCK(td->td_proc); mtx_lock_spin(&sched_lock); thread_exit(); /* NOTREACHED */ - return(0); + return (0); } int kse_wakeup(struct thread *td, struct kse_wakeup_args *uap) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message