[Spice-devel] [PATCH] server: multiple clients works ok if we limit the pipe to the slowest client

Fabiano Fidêncio fidencio at redhat.com
Mon Oct 6 05:30:18 PDT 2014


From: Alon Levy <alon at pobox.com>

---
 server/red_worker.c | 5 +++--
 server/reds.c       | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/server/red_worker.c b/server/red_worker.c
index e177b68..8fed870 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -4961,7 +4961,7 @@ static int red_process_cursor(RedWorker *worker, uint32_t max_pipe_size, int *ri
 
     *ring_is_empty = FALSE;
     while (!cursor_is_connected(worker) ||
-           red_channel_min_pipe_size(&worker->cursor_channel->common.base) <= max_pipe_size) {
+           red_channel_max_pipe_size(&worker->cursor_channel->common.base) <= max_pipe_size) {
         if (!worker->qxl->st->qif->get_cursor_command(worker->qxl, &ext_cmd)) {
             *ring_is_empty = TRUE;
             if (worker->repoll_cursor_ring < CMD_RING_POLL_RETRIES) {
@@ -5020,7 +5020,8 @@ static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int *
     worker->process_commands_generation++;
     *ring_is_empty = FALSE;
     while (!display_is_connected(worker) ||
-           // TODO: change to average pipe size?
+           /* this is safe but slow, in the future client groups will rule the world, and
+            * dial up will live with T1 pipes in harmony */
            red_channel_min_pipe_size(&worker->display_channel->common.base) <= max_pipe_size) {
         if (!worker->qxl->st->qif->get_command(worker->qxl, &ext_cmd)) {
             *ring_is_empty = TRUE;;
diff --git a/server/reds.c b/server/reds.c
index 6864d36..0d2ad88 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -3256,7 +3256,7 @@ static int do_spice_init(SpiceCoreInterface *core_interface)
 
     reds->allow_multiple_clients = getenv(SPICE_DEBUG_ALLOW_MC_ENV) != NULL;
     if (reds->allow_multiple_clients) {
-        spice_warning("spice: allowing multiple client connections (crashy)");
+        spice_warning("spice: allowing multiple client connections");
     }
     atexit(reds_exit);
     return 0;
-- 
2.1.0



More information about the Spice-devel mailing list