Thanks, applied.
On Fri, Feb 18, 2011 at 3:17 PM, Tristan Gingold <ging...@adacore.com> wrote: > Fix compilation failure on Darwin. > > Signed-off-by: Tristan Gingold <ging...@adacore.com> > --- > compatfd.c | 36 ++++++++++++++++++------------------ > 1 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/compatfd.c b/compatfd.c > index a7cebc4..bd377c4 100644 > --- a/compatfd.c > +++ b/compatfd.c > @@ -26,45 +26,45 @@ struct sigfd_compat_info > static void *sigwait_compat(void *opaque) > { > struct sigfd_compat_info *info = opaque; > - int err; > sigset_t all; > > sigfillset(&all); > sigprocmask(SIG_BLOCK, &all, NULL); > > - do { > - siginfo_t siginfo; > + while (1) { > + int sig; > + int err; > > - err = sigwaitinfo(&info->mask, &siginfo); > - if (err == -1 && errno == EINTR) { > - err = 0; > - continue; > - } > - > - if (err > 0) { > - char buffer[128]; > + err = sigwait(&info->mask, &sig); > + if (err != 0) { > + if (errno == EINTR) { > + continue; > + } else { > + return NULL; > + } > + } else { > + struct qemu_signalfd_siginfo buffer; > size_t offset = 0; > > - memcpy(buffer, &err, sizeof(err)); > + memset(&buffer, 0, sizeof(buffer)); > + buffer.ssi_signo = sig; > + > while (offset < sizeof(buffer)) { > ssize_t len; > > - len = write(info->fd, buffer + offset, > + len = write(info->fd, (char *)&buffer + offset, > sizeof(buffer) - offset); > if (len == -1 && errno == EINTR) > continue; > > if (len <= 0) { > - err = -1; > - break; > + return NULL; > } > > offset += len; > } > } > - } while (err >= 0); > - > - return NULL; > + } > } > > static int qemu_signalfd_compat(const sigset_t *mask) > -- > 1.7.3.GIT > > >