[Libvir] [PATCH] lxc: handle SIGCHLD from exiting container
Jim Meyering
jim at meyering.net
Tue May 6 16:10:39 UTC 2008
Dave Leskovec <dlesko at linux.vnet.ibm.com> wrote:
> Jim Meyering wrote:
>> Dave Leskovec <dlesko at linux.vnet.ibm.com> wrote:
>> ...
>>>>> +#ifndef _SIGNAL_H
>>>>> +#include <signal.h>
>>>>> +#endif
>>>> In practice it's fine to include <signal.h> unconditionally,
>>>> and even multiple times. Have you encountered a version of <signal.h>
>>>> that may not be included twice? If so, it probably deserves a comment
>>>> with the details.
>>> No, I don't have any special condition here. This is probably some past
>>> conditioning resurfacing briefly. If I remember correctly, it had more to do
>>> with compile efficiency rather than avoiding compile failures from multiple
>>> inclusions.
>>
>> Then don't bother.
>> gcc performs a handy optimization whereby it doesn't even open
>> the header file the second (and subsequent) time it's included, as
>> long as it's entire contents is wrapped in the usual sort of guard:
>>
>> #ifndef SYM
>> #define SYM
>> ...
>> #endif
>
> Thanks Jim. I've attached an updated patch with those two changes. While
> making these changes, I noticed that I missed updating the storage drivers state
> driver table. I've fixed that as well.
>
> --
...
> Index: b/qemud/qemud.c
> ===================================================================
...
> +static void sig_handler(int sig, siginfo_t * siginfo,
> + void* context ATTRIBUTE_UNUSED) {
...
> - unsigned char sigc;
> + siginfo_t siginfo;
> int ret;
>
> - if (read(server->sigread, &sigc, 1) != 1) {
> + if (read(server->sigread, &siginfo, sizeof(siginfo)) != sizeof(siginfo)) {
Looks good, but that should be saferead instead of "read".
Now that it's reading more than one byte, EINTR can make a difference.
Also, it'd make it a tiny bit easier for people who reply to you
if you did not put code after your signature.
Or at least not after the "-- " signature-introducer.
Some mail clients (at least Gnus) ">"-quote only the part
of your message that comes before the signature.
More information about the libvir-list
mailing list