Date: Thu, 18 Sep 2008 18:57:21 +0200 From: David Naylor <naylor.b.david@gmail.com> To: Tom Evans <tevans.uk@googlemail.com> Cc: freebsd-current@freebsd.org Subject: Re: FreeBSD deadlock (with fork?) Message-ID: <200809181857.25872.naylor.b.david@gmail.com> In-Reply-To: <1221744832.68732.4.camel@localhost> References: <200809180631.47071.naylor.b.david@gmail.com> <1221744832.68732.4.camel@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart42174261.jbxUDPrD5S Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Thursday 18 September 2008 15:33:52 Tom Evans wrote: > On Thu, 2008-09-18 at 06:31 +0200, David Naylor wrote: > > Hi, > > > > I have a program that spawns a lot of subprocesses (with pipes open) fr= om > > multiple threads. The problem is the program often deadlocks, but not > > consistently. Sometimes the program can run over 5 times to competition > > without incidence and yet othertimes it locks within a few seconds. > > Do you create threads, which then fork(), or do you fork() and then create > threads? I have many threads that then fork. (aka forking threads). =20 > > I think the former will not work.. Is there any reason for this and is this a FreeBSD limitation or a general= =20 problem? =20 The problem is that my program has to have threads (or something similar)=20 since it handles lots of IO bound processes concurrently so is there a=20 work-a-round for this problem? I could limit the forking to a single thread (which I tried and did not wor= k)=20 but perhaps I need to have it fork from the master thread? One option I considered was forking a 'slave' program that then does all th= e=20 forking but that will become exceedingly complex (with the communication=20 between the 'slave' and the threads). =20 Lastly, how does GUIs, such as Qt, handle forking since they are threaded a= nd=20 some do fork? =20 > > Cheers > > Tom Regards David --nextPart42174261.jbxUDPrD5S Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQBI0oh1UaaFgP9pFrIRAg7tAJ0YftXpRyZmILJTgPYT8tuaZp94zACfQ9eQ 9ky/Af7G8yBCGAeU2nsQks0= =YYdj -----END PGP SIGNATURE----- --nextPart42174261.jbxUDPrD5S--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809181857.25872.naylor.b.david>