diff options
author | Marc-André Lureau | 2022-04-25 15:39:06 +0200 |
---|---|---|
committer | Marc-André Lureau | 2022-05-03 13:52:25 +0200 |
commit | 17fc124529abfda185e69fa1220e5f404be22d25 (patch) | |
tree | 96762ae195b993bccaae067e48eeaf9aa1982c4e /io | |
parent | chardev: replace qemu_set_nonblock() (diff) | |
download | qemu-17fc124529abfda185e69fa1220e5f404be22d25.tar.gz qemu-17fc124529abfda185e69fa1220e5f404be22d25.tar.xz qemu-17fc124529abfda185e69fa1220e5f404be22d25.zip |
io: replace qemu_set{_non}block()
Those calls are non-socket fd, or are POSIX-specific. Use the dedicated
GLib API. (qemu_set_nonblock() is for socket-like)
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'io')
-rw-r--r-- | io/channel-command.c | 16 | ||||
-rw-r--r-- | io/channel-file.c | 13 |
2 files changed, 18 insertions, 11 deletions
diff --git a/io/channel-command.c b/io/channel-command.c index 0790ac7895..4a1f969aaa 100644 --- a/io/channel-command.c +++ b/io/channel-command.c @@ -301,16 +301,18 @@ static int qio_channel_command_set_blocking(QIOChannel *ioc, bool enabled, Error **errp) { +#ifdef WIN32 + /* command spawn is not supported on win32 */ + g_assert_not_reached(); +#else QIOChannelCommand *cioc = QIO_CHANNEL_COMMAND(ioc); - if (enabled) { - qemu_set_block(cioc->writefd); - qemu_set_block(cioc->readfd); - } else { - qemu_set_nonblock(cioc->writefd); - qemu_set_nonblock(cioc->readfd); + if (!g_unix_set_fd_nonblocking(cioc->writefd, !enabled, NULL) || + !g_unix_set_fd_nonblocking(cioc->readfd, !enabled, NULL)) { + error_setg_errno(errp, errno, "Failed to set FD nonblocking"); + return -1; } - +#endif return 0; } diff --git a/io/channel-file.c b/io/channel-file.c index d7cf6d278f..d146ace7db 100644 --- a/io/channel-file.c +++ b/io/channel-file.c @@ -139,14 +139,19 @@ static int qio_channel_file_set_blocking(QIOChannel *ioc, bool enabled, Error **errp) { +#ifdef WIN32 + /* not implemented */ + error_setg_errno(errp, errno, "Failed to set FD nonblocking"); + return -1; +#else QIOChannelFile *fioc = QIO_CHANNEL_FILE(ioc); - if (enabled) { - qemu_set_block(fioc->fd); - } else { - qemu_set_nonblock(fioc->fd); + if (!g_unix_set_fd_nonblocking(fioc->fd, !enabled, NULL)) { + error_setg_errno(errp, errno, "Failed to set FD nonblocking"); + return -1; } return 0; +#endif } |