[Spice-devel] [spice-server v2 3/5] Don't modify watch when network queue is full
Christophe Fergeau
cfergeau at redhat.com
Fri Apr 28 11:32:30 UTC 2017
Since 5c460d, we need to watch for WATCH_EVENT_WRITE as long as there are
items queued waiting to be sent, this should not be done only when the
network queue is full.
red_channel_client_set_blocked()/red_channel_client_msg_sent() are
still adding/removing WATCH_EVENT_WRITE when the channel becomes
blocked/unblocked. This should not be causing issues as if there is
already pending data, we will send it without needing WATCH_EVENT_WRITE,
and if it starts blocking, the write watch will be reenabled.
However, it's at best redundant, so we can remove this.
Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
---
server/red-channel-client.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/server/red-channel-client.c b/server/red-channel-client.c
index 1c4b27df0..0d6077a5b 100644
--- a/server/red-channel-client.c
+++ b/server/red-channel-client.c
@@ -495,13 +495,7 @@ static int red_channel_client_prepare_out_msg(RedChannelClient *rcc,
static void red_channel_client_set_blocked(RedChannelClient *rcc)
{
- SpiceCoreInterfaceInternal *core;
-
rcc->priv->send_data.blocked = TRUE;
- core = red_channel_get_core_interface(rcc->priv->channel);
- core->watch_update_mask(core, rcc->priv->stream->watch,
- SPICE_WATCH_EVENT_READ |
- SPICE_WATCH_EVENT_WRITE);
}
static inline int red_channel_client_urgent_marshaller_is_active(RedChannelClient *rcc)
@@ -641,10 +635,7 @@ static void red_channel_client_msg_sent(RedChannelClient *rcc)
red_channel_client_clear_sent_item(rcc);
if (red_channel_client_is_blocked(rcc)) {
- SpiceCoreInterfaceInternal *core = red_channel_get_core_interface(rcc->priv->channel);
rcc->priv->send_data.blocked = FALSE;
- core->watch_update_mask(core, rcc->priv->stream->watch,
- SPICE_WATCH_EVENT_READ);
}
if (red_channel_client_urgent_marshaller_is_active(rcc)) {
--
2.12.2
More information about the Spice-devel
mailing list