qemu/ui
Corentin Chary 175b2a6e4b vnc: don't mess up with iohandlers in the vnc thread
The threaded VNC servers messed up with QEMU fd handlers without
any kind of locking, and that can cause some nasty race conditions.

Using qemu_mutex_lock_iothread() won't work because vnc_dpy_cpy(),
which will wait for the current job queue to finish, can be called with
the iothread lock held.

Instead, we now store the data in a temporary buffer, and use a bottom
half to notify the main thread that new data is available.

vnc_[un]lock_ouput() is still needed to access VncState members like
abort, csock or jobs_buffer.

Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-03-14 16:22:46 -05:00
..
cocoa.m cocoa: Close sheet after image file selection 2011-11-01 20:41:06 +01:00
curses_keys.h curses: Fix control-{@[\]^_} and ESC 2010-10-21 18:31:28 +02:00
curses.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
d3des.c
d3des.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
keymaps.c ui: Plug memory leaks on parse_keyboard_layout() error path 2011-11-11 12:49:51 -06:00
keymaps.h
qemu-spice.h Revert "qemu-char: Print strerror message on failure" and deps 2012-02-24 09:06:56 -06:00
sdl_keysym.h
sdl_zoom_template.h
sdl_zoom.c
sdl_zoom.h
sdl.c sdl: remove NULL check, g_malloc0 can't fail 2012-02-27 09:46:51 +01:00
spice-core.c Error out when tls-channel option is used without TLS 2012-02-28 17:22:30 +01:00
spice-display.c qxl: introduce QXLCookie 2012-02-27 09:46:52 +01:00
spice-display.h qxl: make qxl_render_update async 2012-02-27 09:46:52 +01:00
spice-input.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
vnc_keysym.h vnc: added missing name->keysym pairs for Polish national characters 2011-04-01 22:29:27 +02:00
vnc-auth-sasl.c ui/vnc: Convert sasl.mechlist to g_malloc() & friends 2011-11-10 12:29:50 +00:00
vnc-auth-sasl.h
vnc-auth-vencrypt.c Store VNC auth scheme per-client as well as per-server 2011-07-23 11:19:02 -05:00
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h vnc: Add break statement 2012-03-08 15:22:11 +00:00
vnc-enc-hextile.c ui/vnc: Fix use of free() instead of g_free() 2011-11-01 16:52:05 -05:00
vnc-enc-tight.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
vnc-enc-tight.h vnc: tight add PNG encoding 2010-07-26 17:36:14 -05:00
vnc-enc-zlib.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
vnc-enc-zrle-template.c vnc: Add ZRLE and ZYWRLE encodings. 2011-02-23 16:28:28 -06:00
vnc-enc-zrle.c vnc: fix uint8_t comparisons with negative values 2011-02-23 16:28:28 -06:00
vnc-enc-zrle.h vnc: Add ZRLE and ZYWRLE encodings. 2011-02-23 16:28:28 -06:00
vnc-enc-zywrle-template.c Fix spelling in comments, documentation and messages 2011-12-14 11:09:44 +00:00
vnc-enc-zywrle.h Fix spelling in comments, documentation and messages 2011-12-14 11:09:44 +00:00
vnc-jobs-async.c vnc: don't mess up with iohandlers in the vnc thread 2012-03-14 16:22:46 -05:00
vnc-jobs-sync.c vnc: threaded VNC server 2010-07-26 17:36:14 -05:00
vnc-jobs.h vnc: don't mess up with iohandlers in the vnc thread 2012-03-14 16:22:46 -05:00
vnc-palette.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
vnc-palette.h vnc: palette: and fill and color calls. 2011-02-23 16:28:28 -06:00
vnc-tls.c ui/vnc: Fix use of free() instead of g_free() 2011-11-01 16:52:05 -05:00
vnc-tls.h
vnc.c vnc: don't mess up with iohandlers in the vnc thread 2012-03-14 16:22:46 -05:00
vnc.h vnc: don't mess up with iohandlers in the vnc thread 2012-03-14 16:22:46 -05:00
x_keymap.c
x_keymap.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00