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