Porting on FreeBSD 53
Seán C. Farley
sean-freebsd at farley.org
Thu May 12 14:43:55 PDT 2005
On Thu, 12 May 2005, Seán C. Farley wrote:
> On Thu, 12 May 2005, Hervé Kergourlay wrote:
>
> <snip>
>
>> 4) wait() API
>>
>> 2 problems, the first is a ECHILD error on a wait call after a fork
>> fork The code is generic for most of unix system. Is there any
>> specific problems to manage the fork and wait APIs ?
>> the second problem with calls is a blocking wait() call in the same
>> condition but this time the son process is finished but the wait call
>> in the father stays blocked, again it's a generic Unix code
>>
>> If there is no evidence, ask me for more informations
>
> The second problem sounds like what I am encountering
> (http://www.freebsd.org/cgi/query-pr.cgi?pr=77818) with zsh for my
> shell. You did suspend (sigsuspend()) SIGCHLD before the fork? By
> "fork fork", do you mean you fork twice?
Ah ha! I see the problem that has been causing me this problem and
probably you too. Signal suspensions (only these?) are not being copied
with a double fork(). Here is an example program[1] to illustrate.
They do get copied on FreeBSD-4.10 and Linux. I just do not know if
they are supposed to be copied.
Seán
P.S. I included David since he has been trying to help me with this
bug.
1. http://www.farley.org/freebsd/tmp/grandparent.c
--
sean-freebsd at farley.org
More information about the freebsd-hackers
mailing list