API available since glib 2.30. It also preserves errno.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
IVSHMEM_DPRINTF("eventfds[%d][%d] = %d\n", posn, vector, fd);
event_notifier_init_fd(&peer->eventfds[vector], fd);
- fcntl_setfl(fd, O_NONBLOCK); /* msix/irqfd poll non block */
+ g_unix_set_fd_nonblocking(fd, true, NULL); /* msix/irqfd poll non block */
if (posn == s->vm_id) {
setup_interrupt(s, vector, errp);
if (qemu_pipe(fds) < 0) {
return -errno;
}
- ret = fcntl_setfl(fds[0], O_NONBLOCK);
- if (ret < 0) {
+ if (!g_unix_set_fd_nonblocking(fds[0], true, NULL)) {
ret = -errno;
goto fail;
}
- ret = fcntl_setfl(fds[1], O_NONBLOCK);
- if (ret < 0) {
+ if (!g_unix_set_fd_nonblocking(fds[1], true, NULL)) {
ret = -errno;
goto fail;
}
return -errno;
}
- fcntl_setfl(sigfd, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(sigfd, true, NULL);
qemu_set_fd_handler(sigfd, sigfd_handler, NULL, (void *)(intptr_t)sigfd);