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@xxxxxxxxxx> --- 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 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel