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>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
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) from
> > 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).  

>
> I think the former will not work..

Is there any reason for this and is this a FreeBSD limitation or a general 
problem?  

The problem is that my program has to have threads (or something similar) 
since it handles lots of IO bound processes concurrently so is there a 
work-a-round for this problem?

I could limit the forking to a single thread (which I tried and did not work) 
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 the 
forking but that will become exceedingly complex (with the communication 
between the 'slave' and the threads).  

Lastly, how does GUIs, such as Qt, handle forking since they are threaded and 
some do fork?  
>
> Cheers
>
> Tom

Regards

David

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQBI0oh1UaaFgP9pFrIRAg7tAJ0YftXpRyZmILJTgPYT8tuaZp94zACfQ9eQ
9ky/Af7G8yBCGAeU2nsQks0=
=YYdj
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809181857.25872.naylor.b.david>