Dave Leskovec <dlesko(a)linux.vnet.ibm.com> wrote:
Jim Meyering wrote:
> Dave Leskovec <dlesko(a)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.