[Spice-devel] [PATCH spice-server v2 1/6] red-channel-client: Remove push call where not necessary
Christophe Fergeau
cfergeau at redhat.com
Mon Sep 4 14:02:33 UTC 2017
On Mon, Sep 04, 2017 at 12:02:05PM +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 loop instead of using the
> default loop.
in a loop instead of using the default loop? Are you talking about
mainloops? I would assume mainloops, in which case I would phrase things
as "is required only if you are handling data in the non-default
mainloop (eg from a RedWorker thread)". But this does not explain why we
need to add a _push to red_channel_client_push_ping(), is the timer it
goes with only used by RedWorker?
Christophe
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/main-channel.c | 4 ++--
> server/red-channel-client.c | 3 +--
> 2 files changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/server/main-channel.c b/server/main-channel.c
> index c30374c3..e72e5d79 100644
> --- a/server/main-channel.c
> +++ b/server/main-channel.c
> @@ -81,7 +81,7 @@ void main_channel_push_mouse_mode(MainChannel *main_chan, SpiceMouseMode current
> .is_client_mouse_allowed=is_client_mouse_allowed,
> };
>
> - red_channel_pipes_new_add_push(RED_CHANNEL(main_chan),
> + red_channel_pipes_new_add(RED_CHANNEL(main_chan),
> main_mouse_mode_item_new, &info);
> }
>
> @@ -140,7 +140,7 @@ void main_channel_push_multi_media_time(MainChannel *main_chan, uint32_t time)
> .time = time,
> };
>
> - red_channel_pipes_new_add_push(RED_CHANNEL(main_chan),
> + red_channel_pipes_new_add(RED_CHANNEL(main_chan),
> main_multi_media_time_item_new, &info);
> }
>
> diff --git a/server/red-channel-client.c b/server/red-channel-client.c
> index 2612a6db..c45988b9 100644
> --- a/server/red-channel-client.c
> +++ b/server/red-channel-client.c
> @@ -675,6 +675,7 @@ static void red_channel_client_push_ping(RedChannelClient *rcc)
> rcc->priv->latency_monitor.id = rand();
> red_channel_client_pipe_add_type(rcc, RED_PIPE_ITEM_TYPE_PING);
> red_channel_client_pipe_add_type(rcc, RED_PIPE_ITEM_TYPE_PING);
> + red_channel_client_push(rcc);
> }
>
> static void red_channel_client_ping_timer(void *opaque)
> @@ -1590,7 +1591,6 @@ void red_channel_client_pipe_add_type(RedChannelClient *rcc, int pipe_item_type)
>
> red_pipe_item_init(item, pipe_item_type);
> red_channel_client_pipe_add(rcc, item);
> - red_channel_client_push(rcc);
> }
>
> void red_channel_client_pipe_add_empty_msg(RedChannelClient *rcc, int msg_type)
> @@ -1600,7 +1600,6 @@ void red_channel_client_pipe_add_empty_msg(RedChannelClient *rcc, int msg_type)
> red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_EMPTY_MSG);
> item->msg = msg_type;
> red_channel_client_pipe_add(rcc, &item->base);
> - red_channel_client_push(rcc);
> }
>
> gboolean red_channel_client_pipe_is_empty(RedChannelClient *rcc)
> --
> 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