提交 fa88afa5 编写于 作者: M Marc-André Lureau 提交者: Gerd Hoffmann

vscclient: do not add a socket watch if there is not data to send

Fixes the following error:
** (process:780): CRITICAL **: do_socket_send: assertion
`socket_to_send->len != 0' failed
Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
上级 f1d3e586
......@@ -58,7 +58,7 @@ static QemuMutex socket_to_send_lock;
static guint socket_tag;
static void
update_socket_watch(gboolean out);
update_socket_watch(void);
static gboolean
do_socket_send(GIOChannel *source,
......@@ -80,7 +80,7 @@ do_socket_send(GIOChannel *source,
g_byte_array_remove_range(socket_to_send, 0, bw);
if (socket_to_send->len == 0) {
update_socket_watch(FALSE);
update_socket_watch();
return FALSE;
}
return TRUE;
......@@ -89,7 +89,7 @@ do_socket_send(GIOChannel *source,
static gboolean
socket_prepare_sending(gpointer user_data)
{
update_socket_watch(TRUE);
update_socket_watch();
return FALSE;
}
......@@ -440,8 +440,10 @@ do_socket(GIOChannel *source,
}
static void
update_socket_watch(gboolean out)
update_socket_watch(void)
{
gboolean out = socket_to_send->len > 0;
if (socket_tag != 0) {
g_source_remove(socket_tag);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册