From 6e6126e024badfa2d6f52bebfd947d54ad20f5f9 Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Thu, 27 Feb 2014 15:43:59 +0200 Subject: [PATCH] server: multiple clients works ok if we limit the pipe to the slowest client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Alon Levy Signed-off-by: Frediano Ziglio Acked-by: Fabiano FidĂȘncio --- server/red-worker.c | 7 +++---- server/reds.c | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/server/red-worker.c b/server/red-worker.c index 6ec91061..84f9ad07 100644 --- a/server/red-worker.c +++ b/server/red-worker.c @@ -177,7 +177,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(RED_CHANNEL(worker->cursor_channel)) <= max_pipe_size) { + red_channel_max_pipe_size(RED_CHANNEL(worker->cursor_channel)) <= max_pipe_size) { if (!worker->qxl->st->qif->get_cursor_command(worker->qxl, &ext_cmd)) { *ring_is_empty = TRUE; if (worker->cursor_poll_tries < CMD_RING_POLL_RETRIES) { @@ -238,8 +238,7 @@ static int red_process_display(RedWorker *worker, uint32_t max_pipe_size, int *r worker->process_display_generation++; *ring_is_empty = FALSE; while (!display_is_connected(worker) || - // TODO: change to average pipe size? - red_channel_min_pipe_size(RED_CHANNEL(worker->display_channel)) <= max_pipe_size) { + red_channel_max_pipe_size(RED_CHANNEL(worker->display_channel)) <= max_pipe_size) { if (!worker->qxl->st->qif->get_command(worker->qxl, &ext_cmd)) { *ring_is_empty = TRUE;; if (worker->display_poll_tries < CMD_RING_POLL_RETRIES) { @@ -447,7 +446,7 @@ static void flush_cursor_commands(RedWorker *worker) for (;;) { red_channel_push(RED_CHANNEL(worker->cursor_channel)); if (!cursor_is_connected(worker) - || red_channel_min_pipe_size(cursor_red_channel) <= MAX_PIPE_SIZE) { + || red_channel_max_pipe_size(cursor_red_channel) <= MAX_PIPE_SIZE) { break; } RedChannel *channel = (RedChannel *)worker->cursor_channel; diff --git a/server/reds.c b/server/reds.c index 7bdf6a61..f6980420 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3348,7 +3348,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;