From owner-cvs-all@FreeBSD.ORG Wed Nov 3 19:59:18 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B692416A4CE; Wed, 3 Nov 2004 19:59:18 +0000 (GMT) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 62E2143D53; Wed, 3 Nov 2004 19:59:18 +0000 (GMT) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) iA3JxEV1016439; Wed, 3 Nov 2004 14:59:14 -0500 (EST) Date: Wed, 3 Nov 2004 14:59:14 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: John Baldwin In-Reply-To: <200411031431.16218.jhb@FreeBSD.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: David Xu cc: cvs-all@freebsd.org cc: Julian Elischer Subject: Re: cvs commit: src/lib/libpthread/thread thr_private.h thr_sig.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Daniel Eischen List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Nov 2004 19:59:18 -0000 On Wed, 3 Nov 2004, John Baldwin wrote: > On Tuesday 02 November 2004 06:40 pm, Daniel Eischen wrote: > > > > I think if _kse_critical_leave() were replaced by _kcb_critical_leave() > > at around line 676 in thr_kern.c, that should fix the problem, no? > > There's no reason to do a yield check after leaving the scheduler, > > and the check for signals and cancellation is done right after > > that point before returning. > > Well, it moved it. :) Now thr_sig_rundown() is called from thr_resume_check() > from thr_sched_switch_unlocked(), but psf->valid is zero, so it still doesn't > work. What would happen if the signal came in before curthread->frame was > set to &psf in thread_sched_switch_unlocked()? That would cause the problem also. How's this look? http://people.freebsd.org/~deischen/kse/libpthread.cond.diffs -- Dan Eischen