[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