On Fri, Feb 22, 2019 at 4:14 AM Peter Xu <pet...@redhat.com> wrote: > > Since we've have the gcontext always there, create the main loop > altogether. The iothread_run() is even cleaner. > > Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > iothread.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/iothread.c b/iothread.c > index 6fa87876e0..9abdbace66 100644 > --- a/iothread.c > +++ b/iothread.c > @@ -66,17 +66,8 @@ static void *iothread_run(void *opaque) > * changed in previous aio_poll() > */ > if (iothread->running && atomic_read(&iothread->run_gcontext)) { > - GMainLoop *loop; > - > g_main_context_push_thread_default(iothread->worker_context); > - iothread->main_loop = > - g_main_loop_new(iothread->worker_context, TRUE); > - loop = iothread->main_loop; > - > g_main_loop_run(iothread->main_loop); > - iothread->main_loop = NULL; > - g_main_loop_unref(loop); > - > g_main_context_pop_thread_default(iothread->worker_context); > } > } > @@ -141,6 +132,8 @@ static void iothread_instance_finalize(Object *obj) > if (iothread->worker_context) { > g_main_context_unref(iothread->worker_context); > iothread->worker_context = NULL; > + g_main_loop_unref(iothread->main_loop); > + iothread->main_loop = NULL; > } > qemu_sem_destroy(&iothread->init_done_sem); > } > @@ -153,6 +146,7 @@ static void iothread_init_gcontext(IOThread *iothread) > source = aio_get_g_source(iothread_get_aio_context(iothread)); > g_source_attach(source, iothread->worker_context); > g_source_unref(source); > + iothread->main_loop = g_main_loop_new(iothread->worker_context, TRUE); > } > > static void iothread_complete(UserCreatable *obj, Error **errp) > -- > 2.17.1 >