On Tue, 09/26 12:52, Peter Xu wrote: > IOThread is a general framework that contains IO loop environment and a > real thread behind. It's also good to be used internally inside qemu. > Provide some helpers for it to create iothreads to be used internally. > > Put all the internal used iothreads into the internal object container. > > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > include/sysemu/iothread.h | 8 ++++++++ > iothread.c | 16 ++++++++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/include/sysemu/iothread.h b/include/sysemu/iothread.h > index d2985b3..b07663f 100644 > --- a/include/sysemu/iothread.h > +++ b/include/sysemu/iothread.h > @@ -46,4 +46,12 @@ AioContext *iothread_get_aio_context(IOThread *iothread); > void iothread_stop_all(void); > GMainContext *iothread_get_g_main_context(IOThread *iothread); > > +/* > + * Helpers used to allocate iothreads for internal use. These > + * iothreads will not be seen by monitor clients when query using > + * "query-iothreads". > + */ > +IOThread *iothread_create(const char *id, Error **errp); > +void iothread_destroy(IOThread *iothread); > + > #endif /* IOTHREAD_H */ > diff --git a/iothread.c b/iothread.c > index 44c8944..33f996e 100644 > --- a/iothread.c > +++ b/iothread.c > @@ -354,3 +354,19 @@ GMainContext *iothread_get_g_main_context(IOThread > *iothread) > > return iothread->worker_context; > } > + > +IOThread *iothread_create(const char *id, Error **errp) > +{ > + Object *obj; > + > + obj = object_new_with_props(TYPE_IOTHREAD, > + object_get_internal_root(), > + id, errp, NULL); > + > + return IOTHREAD(obj); > +} > + > +void iothread_destroy(IOThread *iothread) > +{ > + object_unparent(OBJECT(iothread)); > +} > -- > 2.7.4 >
Reviewed-by: Fam Zheng <f...@redhat.com>