diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2020-10-27 17:36:02 +0400 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2020-11-04 08:02:25 +0100 |
commit | 0d9b90ce5c73505648909a89bcd5272081b9c348 (patch) | |
tree | 86b4ec4af40cdb56870e03a81a97cdc18d85086e /monitor | |
parent | d00ec2fe86e141324c26816c5847f425a63f851d (diff) | |
download | qemu-0d9b90ce5c73505648909a89bcd5272081b9c348.zip qemu-0d9b90ce5c73505648909a89bcd5272081b9c348.tar.gz qemu-0d9b90ce5c73505648909a89bcd5272081b9c348.tar.bz2 |
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>
Diffstat (limited to 'monitor')
-rw-r--r-- | monitor/hmp-cmds.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 56e9bad..a6a6684 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1762,7 +1762,8 @@ err_out: goto out; } -void hmp_screendump(Monitor *mon, const QDict *qdict) +void coroutine_fn +hmp_screendump(Monitor *mon, const QDict *qdict) { const char *filename = qdict_get_str(qdict, "filename"); const char *id = qdict_get_try_str(qdict, "device"); |