mirror of https://github.com/xemu-project/xemu.git
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:
parent
c3e5704af1
commit
d0dedf2f4c
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue