[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/3] iothread: delay the context release to finalize
From: |
Peter Xu |
Subject: |
[Qemu-devel] [PATCH 3/3] iothread: delay the context release to finalize |
Date: |
Fri, 22 Sep 2017 16:56:12 +0800 |
When gcontext is used with iothread, the context will be destroyed
during iothread_stop(). That's not good since sometimes we would like
to keep the resources until iothread is destroyed, but we may want to
stop the thread before that point.
Delay the destruction of gcontext to iothread finalize. Then we can do:
iothread_stop(thread);
some_cleanup_on_resources();
iothread_destroy(thread);
Signed-off-by: Peter Xu <address@hidden>
---
iothread.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/iothread.c b/iothread.c
index 894756b..b95369b 100644
--- a/iothread.c
+++ b/iothread.c
@@ -71,8 +71,6 @@ static void *iothread_run(void *opaque)
g_main_loop_unref(loop);
g_main_context_pop_thread_default(iothread->worker_context);
- g_main_context_unref(iothread->worker_context);
- iothread->worker_context = NULL;
}
}
@@ -117,6 +115,10 @@ static void iothread_instance_finalize(Object *obj)
IOThread *iothread = IOTHREAD(obj);
iothread_stop(iothread);
+ if (iothread->worker_context) {
+ g_main_context_unref(iothread->worker_context);
+ iothread->worker_context = NULL;
+ }
qemu_cond_destroy(&iothread->init_done_cond);
qemu_mutex_destroy(&iothread->init_done_lock);
if (!iothread->ctx) {
--
2.7.4
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, (continued)
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Stefan Hajnoczi, 2017/09/22
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Paolo Bonzini, 2017/09/22
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Daniel P. Berrange, 2017/09/22
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Paolo Bonzini, 2017/09/22
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Daniel P. Berrange, 2017/09/22
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Stefan Hajnoczi, 2017/09/22
- Re: [Qemu-devel] [PATCH 1/3] iothread: provide helpers for internal use, Daniel P. Berrange, 2017/09/22
[Qemu-devel] [PATCH 2/3] iothread: export iothread_stop(), Peter Xu, 2017/09/22
[Qemu-devel] [PATCH 3/3] iothread: delay the context release to finalize,
Peter Xu <=