[Swan-dev] use vfork/exec
ucdevel at gmail.com
Fri Oct 16 23:10:24 UTC 2015
Andrew Cagney wrote the following:
> On 16 October 2015 at 16:56, Paul Wouters <paul at nohats.ca> wrote:
> > The debug printing can easilly be moved.
> > The sleep was there to ensure the parent had continued, and when the
> > addconn fork is calling the parent on the socket in /var/run, there
> > is something listening. If that is actually needed, we could add it
> > as an option to addconn to pause for one second there.
> My guess (incorrect) was that it was trying to keep log messages
> somewhat in sync. Ewww.
> Thanks for the background. Yea, technically, it should either use
> synchronization (pipes for instance); but, sigh, I guess a while loop
> with a sleep to make it really clear what it is waiting for would also
Just remember that with vfork and the code in question, the parent is
blocked until after the exec, so the sleep does nothing but slow the whole
process down by 1 second :-)
Also, IIRC "exit" is not vfork safe, _exit() should be used instead.
> BTW, if there's code lurking that is turning a process into a daemon
> (fork/fork/exec) is one technique; then that should be changed to just
> call daemon().
> Swan-dev mailing list
> Swan-dev at lists.libreswan.org
David McCullough, ucdevel at gmail.com, Ph: 0410 560 763
More information about the Swan-dev