Am 15.02.2021 um 13:09 hat Markus Armbruster geschrieben: > Kevin Wolf <kw...@redhat.com> writes: > > > monitor_qmp_dispatcher_co() used to check whether shutdown is requested > > "used to": until when?
Until right before this patch. Do you prefer present tense to describe the old state? Also, does your Tested-by imply that you expect someone else to merge this series? I'm planning to send a pull request today, so if that was your intention, I can include it there. Kevin > > only when it would have to wait for new requests. If there were still > > some queued requests, it would try to execute all of them before > > shutting down. > > > > This can be surprising when the queued QMP commands take long or hang > > because Ctrl-C may not actually exit QEMU as soon as possible. > > > > Change monitor_qmp_dispatcher_co() so that it additionally checks > > whether shutdown is request before it gets a new request from the queue. > > > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > > --- > > monitor/qmp.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/monitor/qmp.c b/monitor/qmp.c > > index 43880fa623..2326bd7f9b 100644 > > --- a/monitor/qmp.c > > +++ b/monitor/qmp.c > > @@ -227,6 +227,11 @@ void coroutine_fn monitor_qmp_dispatcher_co(void *data) > > */ > > qatomic_mb_set(&qmp_dispatcher_co_busy, false); > > > > + /* On shutdown, don't take any more requests from the queue */ > > + if (qmp_dispatcher_co_shutdown) { > > + return; > > + } > > + > > while (!(req_obj = monitor_qmp_requests_pop_any_with_lock())) { > > /* > > * No more requests to process. Wait to be reentered from