Thanks a lot for the answer. I will change vfork() with fork().

An another question: in the man page of vfork() it is mentionned that
the fork() function has to use _exit(0) too when something wrong with the
execve() happens!
but in a thread context of my program, the use of _exit() may not be
best practice.
Is the child a real process or because of the thread context a part of
the parent process, so a new thread.
In this case a pthread_exit() may be a better solution.
Is that point a view complety wrong ?

Currently, is some indeterminate case, a part of my program freeze just
after the vfork().
So, I try to understand what may cause the calling thread of vfork() to
freeze ...

Thanks a lot!


On Fri, 28 Nov 2003, Terry Lambert wrote:

> Date: Fri, 28 Nov 2003 04:46:31 -0800
> From: Terry Lambert <[EMAIL PROTECTED]>
> To: rmkml <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED]
> Subject: Re: question about _exit() function
>
> rmkml wrote:
> > is the _exit() function safe for a thread ?
> > my program use vfork() and then execve in a thread context.
> > The documentation mentions that the process has to call _exit() in case
> > of failure.
> > But this _exit() is really safe for the parent thread ?
>
> The behaviour is undefined in the failure case, but only if you
> have stablishd a pthread_atfork() handler that does anything in
> the child.
>
> In general, the more correct approach is to use posix_spawn(), but
> FreeBSD doesn't support posix_spawn() (funny; this has come up now
> twice in within 60 messages of each other, while ther was a very
> long time when it was not pertinent at all...).
>
> POSIX also sriously discourages the use of vfork(), and recommends
> fork() instead, for threaded programs.
>
> Note that the fork() only *ever* creates a single thread, so it
> will only replicate the currently running thread and its address
> space, rather than all currently running threads in the parent.
>
> You said in another message that this is on 4.8.  I think that the
> behaviour will not be quite what you expect, in that case, and that
> it'll be better in -current, but might still not be what you expect
> there, either (depends on what you are expecting).  See also:
>
> http://www.opengroup.org/onlinepubs/007904975/functions/fork.html
>
> -- Terry
>
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to