util: simplify write in signal handler

Use qemu_write_full() instead of open-coding a write loop.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220420132624.2439741-36-marcandre.lureau@redhat.com>
This commit is contained in:
Marc-André Lureau 2022-04-20 17:26:18 +04:00
parent c3e5704af1
commit d0dedf2f4c
1 changed files with 2 additions and 16 deletions

View File

@ -42,25 +42,11 @@ static void *sigwait_compat(void *opaque)
}
} else {
struct qemu_signalfd_siginfo buffer;
size_t offset = 0;
memset(&buffer, 0, sizeof(buffer));
buffer.ssi_signo = sig;
while (offset < sizeof(buffer)) {
ssize_t len;
len = write(info->fd, (char *)&buffer + offset,
sizeof(buffer) - offset);
if (len == -1 && errno == EINTR) {
continue;
}
if (len <= 0) {
return NULL;
}
offset += len;
if (qemu_write_full(info->fd, &buffer, sizeof(buffer)) != sizeof(buffer)) {
return NULL;
}
}
}