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