Skip site navigation (1)Skip section navigation (2)
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>