channel-posix: using qemu_set_nonblock() instead of fcntl(O_NONBLOCK)
Technically, fcntl(soc, F_SETFL, O_NONBLOCK) is incorrect since it clobbers all other file flags. We can use F_GETFL to get the current flags, set or clear the O_NONBLOCK flag, then use F_SETFL to set the flags. Using the qemu_set_nonblock() wrapper. Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Wangxin <wangxinxin.wang@huawei.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
4ff12bdb1d
commit
16b38080e3
@ -42,7 +42,7 @@ static gboolean ga_channel_listen_accept(GIOChannel *channel,
|
||||
g_warning("error converting fd to gsocket: %s", strerror(errno));
|
||||
goto out;
|
||||
}
|
||||
fcntl(client_fd, F_SETFL, O_NONBLOCK);
|
||||
qemu_set_nonblock(client_fd);
|
||||
ret = ga_channel_client_add(c, client_fd);
|
||||
if (ret) {
|
||||
g_warning("error setting up connection");
|
||||
|
Loading…
Reference in New Issue
Block a user