Date: Tue, 29 Jan 2008 15:14:58 -0800 From: Landon Fuller <landonf@bikemonkey.org> To: Daniel Eischen <eischen@vigrid.com> Cc: freebsd-threads@freebsd.org Subject: Re: threads/119920: fork broken in libpthread Message-ID: <892A73B3-0114-4718-ABC0-CADD45D9D0FA@bikemonkey.org> In-Reply-To: <Pine.GSO.4.64.0801291611130.12689@sea.ntplx.net> References: <200801240850.m0O8o2JQ023500@freefall.freebsd.org> <4798564B.7070500@elischer.org> <Pine.GSO.4.64.0801240957550.16059@sea.ntplx.net> <488DBC6A-CF33-4E50-B1BB-C396C8957F92@bikemonkey.org> <Pine.GSO.4.64.0801291611130.12689@sea.ntplx.net>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] On Jan 29, 2008, at 13:13, Daniel Eischen wrote: >> > > There is a bug somewhere else or something is stomping > on the thread's lockuser. It is allocated once when the > thread is created and should never be null thereafter. > Hence, it should never be malloc'd and the reinit should > be sufficient. I'm totally unfamiliar with KSE, so perhaps this a stupid question -- it seems to solve the issue locally, so I'll ask it -- Why not place the fork() code inside of _kse_critical_enter / _kse_critical_leave, to ensure upcalls are blocked while re- initializing in the child process post-fork? Unless I'm off base, this should be an adequate replacement for this code? http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/kern_fork.c.diff? r1=1.285;r2=1.286 -landonf [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (Darwin) iD8DBQFHn7NylplZCE/15mMRAjbZAKCKGhKp5wht4wXSo+14HWSkpIOIQACfaFh5 10JHx+QAWHep3PcHPPwgDZ8= =+pQ/ -----END PGP SIGNATURE-----help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?892A73B3-0114-4718-ABC0-CADD45D9D0FA>
