console: make QMP/HMP screendump run in coroutine
commit0d9b90ce5c73505648909a89bcd5272081b9c348
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Tue, 27 Oct 2020 13:36:02 +0000 (27 17:36 +0400)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 4 Nov 2020 07:02:25 +0000 (4 08:02 +0100)
tree86b4ec4af40cdb56870e03a81a97cdc18d85086e
parentd00ec2fe86e141324c26816c5847f425a63f851d
console: make QMP/HMP screendump run in coroutine

Thanks to the monitors' coroutine support (merge commit b7092cda1b3),
the screendump handler can trigger a graphic_hw_update(), yield and let
the main loop run until update is done. Then the handler is resumed, and
ppm_save() will write the screen image to disk in the coroutine context.

The IO is still blocking though, as the file is set blocking so far,
this could be addressed by some future change (with other caveats).

Related to:
https://bugzilla.redhat.com/show_bug.cgi?id=1230527

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 20201027133602.3038018-4-marcandre.lureau@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hmp-commands.hx
monitor/hmp-cmds.c
qapi/ui.json
ui/console.c