[Spice-devel] [PATCH spice-server] red-channel-client: Do not push items adding them to tail

Christophe Fergeau cfergeau at redhat.com
Mon Sep 18 15:59:50 UTC 2017


On Wed, Sep 13, 2017 at 10:15:14AM +0100, Frediano Ziglio wrote:
> Now the push is done automatically when a PipeItem is added
> (cfr commit 5c460de1a3972b7cf2b9b2944d0b500c3affc363
> "worker: push data when clients can receive them"),
> forcing a push cause only network fragmentation and is required only if
> you are handling data in a polling loop (and thus, you are preventing
> the default event loop from running).

I'd reword the shortlog to just "channel-client: Remove
red_channel_client_pipe_add_tail_push"

Acked-by: Christophe Fergeau <cfergeau at redhat.com>

Should something similar be done with
red_channel_client_pipe_add_push()?

Christophe


> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/cache-item.tmpl.c    | 2 +-
>  server/dcc.c                | 2 +-
>  server/red-channel-client.c | 9 ---------
>  server/red-channel-client.h | 1 -
>  4 files changed, 2 insertions(+), 12 deletions(-)
> 
> diff --git a/server/cache-item.tmpl.c b/server/cache-item.tmpl.c
> index 47de423bf..19e6b95f1 100644
> --- a/server/cache-item.tmpl.c
> +++ b/server/cache-item.tmpl.c
> @@ -78,7 +78,7 @@ static void FUNC_NAME(remove)(CHANNELCLIENT *channel_client, RedCacheItem *item)
>      channel_client->priv->VAR_NAME(available) += item->u.cache_data.size;
>  
>      red_pipe_item_init(&item->u.pipe_data, RED_PIPE_ITEM_TYPE_INVAL_ONE);
> -    red_channel_client_pipe_add_tail_and_push(RED_CHANNEL_CLIENT(channel_client), &item->u.pipe_data); // for now
> +    red_channel_client_pipe_add_tail(RED_CHANNEL_CLIENT(channel_client), &item->u.pipe_data); // for now
>  }
>  
>  static int FUNC_NAME(add)(CHANNELCLIENT *channel_client, uint64_t id, size_t size)
> diff --git a/server/dcc.c b/server/dcc.c
> index 1e0ba790f..3bf75a707 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -470,7 +470,7 @@ void dcc_append_drawable(DisplayChannelClient *dcc, Drawable *drawable)
>      RedDrawablePipeItem *dpi = red_drawable_pipe_item_new(dcc, drawable);
>  
>      add_drawable_surface_images(dcc, drawable);
> -    red_channel_client_pipe_add_tail_and_push(RED_CHANNEL_CLIENT(dcc), &dpi->dpi_pipe_item);
> +    red_channel_client_pipe_add_tail(RED_CHANNEL_CLIENT(dcc), &dpi->dpi_pipe_item);
>  }
>  
>  void dcc_add_drawable_after(DisplayChannelClient *dcc, Drawable *drawable, RedPipeItem *pos)
> diff --git a/server/red-channel-client.c b/server/red-channel-client.c
> index 8f7308628..0443d6184 100644
> --- a/server/red-channel-client.c
> +++ b/server/red-channel-client.c
> @@ -1596,15 +1596,6 @@ void red_channel_client_pipe_add_tail(RedChannelClient *rcc,
>      g_queue_push_tail(&rcc->priv->pipe, item);
>  }
>  
> -void red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc, RedPipeItem *item)
> -{
> -    if (!prepare_pipe_add(rcc, item)) {
> -        return;
> -    }
> -    g_queue_push_tail(&rcc->priv->pipe, item);
> -    red_channel_client_push(rcc);
> -}
> -
>  void red_channel_client_pipe_add_type(RedChannelClient *rcc, int pipe_item_type)
>  {
>      RedPipeItem *item = spice_new(RedPipeItem, 1);
> diff --git a/server/red-channel-client.h b/server/red-channel-client.h
> index 732fbdd59..56503c44b 100644
> --- a/server/red-channel-client.h
> +++ b/server/red-channel-client.h
> @@ -96,7 +96,6 @@ int red_channel_client_pipe_item_is_linked(RedChannelClient *rcc, RedPipeItem *i
>  void red_channel_client_pipe_remove_and_release(RedChannelClient *rcc, RedPipeItem *item);
>  void red_channel_client_pipe_remove_and_release_pos(RedChannelClient *rcc, GList *item_pos);
>  void red_channel_client_pipe_add_tail(RedChannelClient *rcc, RedPipeItem *item);
> -void red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc, RedPipeItem *item);
>  /* for types that use this routine -> the pipe item should be freed */
>  void red_channel_client_pipe_add_type(RedChannelClient *rcc, int pipe_item_type);
>  RedPipeItem *red_channel_client_new_empty_msg(int msg_type);
> -- 
> 2.13.5
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list