From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=40089 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKWl1-0001T1-MN for qemu-devel@nongnu.org; Fri, 04 Jun 2010 09:16:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OKWkx-0007Rp-Tq for qemu-devel@nongnu.org; Fri, 04 Jun 2010 09:16:17 -0400 Received: from iksaif.net ([88.191.73.63]:39068) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OKWkx-0007Rg-PV for qemu-devel@nongnu.org; Fri, 04 Jun 2010 09:16:15 -0400 From: Corentin Chary Date: Fri, 4 Jun 2010 15:20:18 +0200 Message-Id: <1275657620-26226-1-git-send-email-corentincj@iksaif.net> Subject: [Qemu-devel] [PATCH v2 0/2] Threaded VNC server List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Qemu-development List Cc: Corentin Chary , Anthony Liguori , Alexander Graf , Gautham R Shenoy Hi, This series add a threaded VNC server and should be applied on top on my previous patch set (adding tight encoding). The first patch add some functions to qemu-thread. The last oneis the threaded VNC server. Thanks Since v1: * Moved locks from VncState to VncDisplay because it's only used in vnc_refresh * Use trylock in vnc_refresh. If there is an encoding task still running, reschedule the refresh. This really boost performances and make the vnc server truly asynchroneous. The only blocking lock is the output_mutex which is only held during a simple memcpy(). * Fixed issues found by Paolo, except the exit condition, mainly because we can only have one queue per VncState (due to zstreams), so this is not really an issue. * Rebased on top of jpeg and ui/ patchs Corentin Chary (2): qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit vnc: threaded VNC server Makefile.objs | 7 +- configure | 13 ++ qemu-thread.c | 22 ++++ qemu-thread.h | 4 + ui/vnc-jobs-sync.c | 65 ++++++++++ ui/vnc-jobs.c | 351 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ui/vnc.c | 169 ++++++++++++++++++++++---- ui/vnc.h | 75 +++++++++++ 8 files changed, 683 insertions(+), 23 deletions(-) create mode 100644 ui/vnc-jobs-sync.c create mode 100644 ui/vnc-jobs.c