qemu/monitor
Kevin Wolf 9ce44e2ce2 qmp: Move dispatcher to a coroutine
This moves the QMP dispatcher to a coroutine and runs all QMP command
handlers that declare 'coroutine': true in coroutine context so they
can avoid blocking the main loop while doing I/O or waiting for other
events.

For commands that are not declared safe to run in a coroutine, the
dispatcher drops out of coroutine context by calling the QMP command
handler from a bottom half.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201005155855.256490-10-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2020-10-09 07:08:20 +02:00
..
hmp-cmds.c monitor: Add Monitor parameter to monitor_get_cpu_index() 2020-10-09 07:08:19 +02:00
hmp.c monitor: Make current monitor a per-coroutine property 2020-10-09 07:08:19 +02:00
meson.build configure: do not include dependency flags in QEMU_CFLAGS and LIBS 2020-09-08 11:43:16 +02:00
misc.c hmp: Update current monitor only in handle_hmp_command() 2020-10-09 07:08:19 +02:00
monitor-internal.h qmp: Move dispatcher to a coroutine 2020-10-09 07:08:20 +02:00
monitor.c qmp: Move dispatcher to a coroutine 2020-10-09 07:08:20 +02:00
qmp-cmds-control.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00
qmp-cmds.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00
qmp.c qmp: Move dispatcher to a coroutine 2020-10-09 07:08:20 +02:00
trace-events monitor: Split out monitor/monitor.c 2019-06-18 08:14:17 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00