threads/101323: fork(2) in threaded programs broken.

Poul-Henning Kamp phk at phk.freebsd.dk
Thu Aug 3 20:10:29 UTC 2006


The following reply was made to PR threads/101323; it has been noted by GNATS.

From: "Poul-Henning Kamp" <phk at phk.freebsd.dk>
To: Daniel Eischen <deischen at freebsd.org>
Cc: FreeBSD-gnats-submit at freebsd.org, freebsd-threads at freebsd.org
Subject: Re: threads/101323: fork(2) in threaded programs broken. 
Date: Thu, 03 Aug 2006 20:08:20 +0000

 In message <Pine.GSO.4.64.0608031558540.13543 at sea.ntplx.net>, Daniel Eischen wr
 ites:
 
 
 >There's no easy way to hold all library locks.  They are
 >littered in libc and libpthread and the application doesn't
 >have access to them.  You would have to teach libc to
 >record these locks and export a function to lib<thread>
 >to lock and unlock these them.
 
 I would be perfectly happy if libpthread would just at the very
 least release the locks it specifically grabs for the fork.
 
 There's a big difference between giving it a sensible shot and
 downright sabotaging it the way we do currently.
 
 Anyway, apart from the view from the theoretical high ground and
 the fact that POSIX doesn't actually say anything helpful here, are
 there any objections to the fix I proposed ?
 
 -- 
 Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
 phk at FreeBSD.ORG         | TCP/IP since RFC 956
 FreeBSD committer       | BSD since 4.3-tahoe    
 Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-threads mailing list