This patchset converts the screen_dump command to async across qemu, and then implements it asynchronously for the qxl device in Native mode. This fixes a hang that is caused when the spice client is also a qemu monitor client and the client is single threaded:
io thread worker thread client <---------------------------------------------------- screendump do_screen_dump-> read-------> flush, read client socket-------------> Monitor maintainers: The first patch changes the monitor command to be async. The rest are qxl changes only. Alon Levy (5): monitor: screen_dump async qxl: s/__FUNCTION__/__func__/, change logging levels qxl: support concurrent async commands qxl: split qxl_render_display_resized qxl: support async monitor screen dump console.c | 5 +- console.h | 7 +- hmp-commands.hx | 3 +- hw/g364fb.c | 12 ++- hw/qxl-render.c | 136 ++++++++++++++++++++---------- hw/qxl.c | 236 +++++++++++++++++++++++++++++++++++++-------------- hw/qxl.h | 63 +++++++++++++- hw/vga.c | 7 +- hw/vmware_vga.c | 5 +- monitor.c | 5 +- qmp-commands.hx | 3 +- ui/spice-display.c | 19 ++-- ui/spice-display.h | 7 +- 13 files changed, 363 insertions(+), 145 deletions(-) -- 1.7.7