tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Library support for two-phase daemonization



In article <21224.54743.92353.870553%guava.gson.org@localhost>,
Andreas Gustafsson  <gson%gson.org@localhost> wrote:
>Christos Zoulas wrote:
>> - the assumption that pfd[0] + 1 == pfd[1] is not true. If you start
>>   with 0, 1, 2 open then close 1, and issue pipe(), you'll end up
>>   with pfd[0] = 1, pfd[1] = 3. So you should test that both pfd[0]
>>   and pfd[1] are > STDERR_FILENO.
>
>The code is not making that assumption.  It is only trying to protect
>the write end of the pipe (pfd[1]) from getting a fd in the range 0-2,
>not the read end, as the read end will be closed anyway by the time
>the child closes fds 0-2.

Ok, sounds good.

>> - I think most fd's should be close on exec here. so you could use pipe2()
>>   to setup sigpipe and close-on-exec handlign.
>> - results of read/write are ssize_t
>> - I like to write fork as a switch instead of ifthenelif, r is pid_t.
>> - why isn't the detach daemon pipe static?
>
>I'll fix these.
>
>Implementation nits aside, do you find the API acceptable, or would
>you prefer to expose the file descriptor as Joerg is suggesting?

I think that exposing the file descriptor is nice because it avoids the
static storage issue.

christos



Home | Main Index | Thread Index | Old Index