[Spice-devel] [PATCH spice-server 0/4] Refactor RedChannel ClientCbs

Frediano Ziglio fziglio at redhat.com
Wed Aug 30 07:31:46 UTC 2017


> This is an alternate proposal to the patch Frediano sent recently which
> includes the data argument in the ClientCbs struct and removes the
> g_object_get|set_data() calls.
> 
> This series also removes the GObject data stuff, but also does some
> deeper refactoring.
> 


Honestly does not seem that great.

It assumes CursorChannel and DisplayChannel will always have an
associated QXL device. There are different patches that remove this
needs for CursorChannel.

The original design was that these callbacks could be overridden
to make any channel (type+id meaning) run in a separate thread.
Now we are forced to either use from the main thread or from a
separate one.

For instance in my streaming patches I use the CursorChannel
from the main thread, now I would have to:
- write a fake QXL device to make CursorChannel happy;
- create a new Dispatcher to handle requests from CursorChannel;
- create another thread to handle synchronous calls (like
  disconnect)

Also make harder to understand why these calls are separate
as they are just some different methods while before were
contained in a different structure.

I really Nack this approach.

Frediano

> Jonathon Jongsma (4):
>   red-worker: don't pass 'dispatcher' as data for ClientCbs
>   red-qxl: remove use of g_object_get_data()
>   Move Cursor and Display client cbs to channel file
>   Convert ClientCbs to channel virtual functions
> 
>  server/common-graphics-channel.c |   1 -
>  server/cursor-channel.c          |  63 +++++++++++++++++++
>  server/display-channel.c         |  69 +++++++++++++++++++++
>  server/inputs-channel.c          |  11 ++--
>  server/main-channel-client.c     |   8 ---
>  server/main-channel-client.h     |   1 -
>  server/main-channel.c            |  13 ++--
>  server/red-channel.c             |  54 +++++++---------
>  server/red-channel.h             |  25 ++++----
>  server/red-qxl.c                 | 129
>  +--------------------------------------
>  server/red-worker.c              |  11 +---
>  server/red-worker.h              |   4 +-
>  server/smartcard.c               |   6 +-
>  server/sound.c                   |  21 +++----
>  server/spicevmc.c                |   7 +--
>  15 files changed, 196 insertions(+), 227 deletions(-)
> 


More information about the Spice-devel mailing list