Date: Wed, 3 Nov 2004 14:59:14 -0500 (EST) From: Daniel Eischen <deischen@freebsd.org> To: John Baldwin <jhb@freebsd.org> Cc: Julian Elischer <julian@elischer.org> Subject: Re: cvs commit: src/lib/libpthread/thread thr_private.h thr_sig.c Message-ID: <Pine.GSO.4.43.0411031457590.11419-100000@sea.ntplx.net> In-Reply-To: <200411031431.16218.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.43.0411031457590.11419-100000>