Hi
On Wed, Aug 15, 2018 at 3:37 PM, Peter Xu <peterx@redhat.com> wrote:
> When we reach monitor_qmp_setup_handlers_bh() we must be using the
> IOThread then, so no need to check against it any more. Instead, we
> assert.
>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
That's a clear simplification that I also found, so ack in principle.
However, I don't understand the need of a BH in the first place.
monitor_get_io_context() will return the iothread associated context.
Could you explain?
thanks
> ---
> monitor.c | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/monitor.c b/monitor.c
> index 77861e96af..5cd9398824 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4624,15 +4624,10 @@ static void monitor_qmp_setup_handlers_bh(void *opaque)
> Monitor *mon = opaque;
> GMainContext *context;
>
> - if (mon->use_io_thread) {
> - /* Use @mon_iothread context */
> - context = monitor_get_io_context();
> - assert(context);
> - } else {
> - /* Use default main loop context */
> - context = NULL;
> - }
> -
> + assert(mon->use_io_thread);
> + /* Use @mon_iothread context */
> + context = monitor_get_io_context();
> + assert(context);
> qemu_chr_fe_set_handlers(&mon->chr, monitor_can_read, monitor_qmp_read,
> monitor_qmp_event, NULL, mon, context, true);
> monitor_list_append(mon);
> --
> 2.17.1
>