[PATCH 06/10] vireventthread: add virEventThreadClose

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Tue Jul 14 09:32:57 UTC 2020


virEventThreadClose is used when event loop thread should
be exited synchronously (which is not the case when event loop
is just unreferenced).

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
---
 src/libvirt_private.syms  | 1 +
 src/util/vireventthread.c | 9 +++++++++
 src/util/vireventthread.h | 1 +
 3 files changed, 11 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index f64b1de..c85ec43 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2023,6 +2023,7 @@ virEventGLibRunOnce;
 
 
 # util/vireventthread.h
+virEventThreadClose;
 virEventThreadGetContext;
 virEventThreadNew;
 
diff --git a/src/util/vireventthread.c b/src/util/vireventthread.c
index cf86592..0a7c436 100644
--- a/src/util/vireventthread.c
+++ b/src/util/vireventthread.c
@@ -183,6 +183,15 @@ virEventThreadNew(const char *name)
 }
 
 
+void
+virEventThreadClose(virEventThread *evt)
+{
+    g_main_loop_quit(evt->loop);
+    g_thread_join(evt->thread);
+    evt->thread = NULL;
+}
+
+
 GMainContext *
 virEventThreadGetContext(virEventThread *evt)
 {
diff --git a/src/util/vireventthread.h b/src/util/vireventthread.h
index 5826c25..6f01629 100644
--- a/src/util/vireventthread.h
+++ b/src/util/vireventthread.h
@@ -27,5 +27,6 @@
 G_DECLARE_FINAL_TYPE(virEventThread, vir_event_thread, VIR, EVENT_THREAD, GObject);
 
 virEventThread *virEventThreadNew(const char *name);
+void virEventThreadClose(virEventThread *evt);
 
 GMainContext *virEventThreadGetContext(virEventThread *evt);
-- 
1.8.3.1




More information about the libvir-list mailing list