[Spice-devel] [PATCH 14/18] worker: move dcc_freeze_glz

Fabiano Fidêncio fabiano at fidencio.org
Thu Nov 19 01:45:44 PST 2015


On Wed, Nov 18, 2015 at 5:17 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> ---
>  server/dcc-encoders.c |  9 +++++++++
>  server/dcc-encoders.h |  1 +
>  server/red_worker.c   | 12 +-----------
>  3 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
> index 385b6b6..6cdac9d 100644
> --- a/server/dcc-encoders.c
> +++ b/server/dcc-encoders.c
> @@ -544,3 +544,12 @@ void dcc_free_glz_drawables(DisplayChannelClient *dcc)
>      }
>      pthread_rwlock_unlock(&glz_dict->encode_lock);
>  }
> +
> +void dcc_freeze_glz(DisplayChannelClient *dcc)
> +{
> +    pthread_rwlock_wrlock(&dcc->glz_dict->encode_lock);
> +    if (!dcc->glz_dict->migrate_freeze) {
> +        dcc->glz_dict->migrate_freeze = TRUE;
> +    }
> +    pthread_rwlock_unlock(&dcc->glz_dict->encode_lock);
> +}
> diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
> index dd3d528..2c01ba4 100644
> --- a/server/dcc-encoders.h
> +++ b/server/dcc-encoders.h
> @@ -44,6 +44,7 @@ void             dcc_free_glz_drawable                       (DisplayChannelClie
>                                                                RedGlzDrawable *drawable);
>  void             dcc_free_glz_drawables                      (DisplayChannelClient *dcc);
>  void             dcc_free_glz_drawables_to_free              (DisplayChannelClient* dcc);
> +void             dcc_freeze_glz                              (DisplayChannelClient *dcc);
>
>  void             marshaller_add_compressed                   (SpiceMarshaller *m,
>                                                                RedCompressBuf *comp_buf,
> diff --git a/server/red_worker.c b/server/red_worker.c
> index 19d8f43..1c54d51 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -183,7 +183,6 @@ static void red_update_area_till(DisplayChannel *display, const SpiceRect *area,
>                                   Drawable *last);
>  static inline void display_begin_send_message(RedChannelClient *rcc);
>  static void dcc_release_glz(DisplayChannelClient *dcc);
> -static void red_freeze_glz(DisplayChannelClient *dcc);
>  static void display_channel_push_release(DisplayChannelClient *dcc, uint8_t type, uint64_t id,
>                                           uint64_t* sync_data);
>  static int red_display_free_some_independent_glz_drawables(DisplayChannelClient *dcc);
> @@ -4067,7 +4066,7 @@ static void display_channel_marshall_migrate_data(RedChannelClient *rcc,
>             sizeof(display_data.pixmap_cache_clients));
>
>      spice_assert(dcc->glz_dict);
> -    red_freeze_glz(dcc);
> +    dcc_freeze_glz(dcc);
>      display_data.glz_dict_id = dcc->glz_dict->id;
>      glz_enc_dictionary_get_restore_data(dcc->glz_dict->dict,
>                                          &display_data.glz_dict_data,
> @@ -4992,15 +4991,6 @@ static GlzSharedDictionary *red_restore_glz_dictionary(DisplayChannelClient *dcc
>      return shared_dict;
>  }
>
> -static void red_freeze_glz(DisplayChannelClient *dcc)
> -{
> -    pthread_rwlock_wrlock(&dcc->glz_dict->encode_lock);
> -    if (!dcc->glz_dict->migrate_freeze) {
> -        dcc->glz_dict->migrate_freeze = TRUE;
> -    }
> -    pthread_rwlock_unlock(&dcc->glz_dict->encode_lock);
> -}
> -
>  /* destroy encoder, and dictionary if no one uses it*/
>  static void dcc_release_glz(DisplayChannelClient *dcc)
>  {
> --
> 2.4.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel

ACK!

-- 
Fabiano Fidêncio


More information about the Spice-devel mailing list