Hi On Wed, Aug 15, 2018 at 3:37 PM, Peter Xu <pet...@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 <arm...@redhat.com> > Signed-off-by: Peter Xu <pet...@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 >