Hi,

On 11/22/2010 09:11 PM, Alon Levy wrote:
Hi,

  This is an update on the multiclient status, as the patches are still not 
good enough for review and even for RFC, but since Hans asked me and since it 
would order my thoughts a little, here is the current multiclient status and 
patches.

First, git tree:
  git://anongit.freedesktop.org/~alon/spice server_multi_client.wip

Implemented:
  make everything except sound (playback/record) channels use RedChannel in 
red_channel.h
  split up inputs_channel.c and main_channel.c from reds.c
  add ring of RedChannelClient into RedChannel
  create RedClient to hold ring of channels as well (so every RedChannelClient 
is doubly linked)
  pipe logic: each PipeItem has two reference counts, when left_target is 
zeroed it is removed from the pipe (ring), when refs is zeroed it is released.
  each RedChannelClient has a pipe pointer. This area still needs some work 
(that's where windows rendering artifacts are probably from)
  most of the caches were moved to channel_client state (DisplayChannelClient) 
(red_worker.c - still left as one file with both cursor and display channel, 
and worker event loop - not sure we need a separate event loop, or thread for 
that matter. unless it's a multiple-core-usage issue? or priority issue?).
   image cache is still left in worker - not sure actually why it works fine 
with it there (this is the other possible source of rendering artifacts)
  channels message differs based on amount of clients already connected (just a 
current policy)

Status:
  fedora and windows boot, go into graphics mode, can connect two clients, 
first has inputs channel, both have display channel (first has cursor channel 
as well)
  agent breaks (crash of qemu)
  sound not multi-channeled (nothing except main and display, although inputs 
and cursor should work, just didn't test it)
  major rendering artifacts in windows (noted above maybe fixes)
  code is not reviewable (at least everything after channel refactoring)

Additional:
  introduced a display test in server/tests, it runs using libtool if you want 
to debug
   libtool --mode execute gdb server/tests/test_display_no_ssl
  builds using automake
  the tree removes SSL - apparently valgrind really doesn't like openssl, this 
was the only way I could get relevant information from it. we use SSL for 
ticketing, so it is always invoked even with no secure port.


Thanks for the update, not much else to add :)

Let me know when you've a set of patches which you would like to see merged
and I'll review it for you.

Regards,

Hans
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to