[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] monitor/qmp: Stop processing requests when shutdown is r
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 2/2] monitor/qmp: Stop processing requests when shutdown is requested |
Date: |
Mon, 15 Feb 2021 13:09:58 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Kevin Wolf <kwolf@redhat.com> writes:
> monitor_qmp_dispatcher_co() used to check whether shutdown is requested
"used to": until when?
> 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 <kwolf@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
Re: [PATCH 0/2] monitor: Shutdown fixes, Markus Armbruster, 2021/02/15
Re: [PATCH 0/2] monitor: Shutdown fixes, Markus Armbruster, 2021/02/15