From 4733c5fef00abacfbca414d96114bd7a5427ca12 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Mon, 29 Aug 2011 09:44:08 +0200
Subject: io_thread: add function io_thread_quit()

---
 src/io_thread.c | 11 +++++++++--
 src/io_thread.h |  8 ++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/io_thread.c b/src/io_thread.c
index 4677428d6..a0e3a8844 100644
--- a/src/io_thread.c
+++ b/src/io_thread.c
@@ -74,13 +74,20 @@ io_thread_start(GError **error_r)
 	return true;
 }
 
+void
+io_thread_quit(void)
+{
+	assert(io.loop != NULL);
+
+	g_main_loop_quit(io.loop);
+}
+
 void
 io_thread_deinit(void)
 {
 	if (io.thread != NULL) {
-		assert(io.loop != NULL);
+		io_thread_quit();
 
-		g_main_loop_quit(io.loop);
 		g_thread_join(io.thread);
 	}
 
diff --git a/src/io_thread.h b/src/io_thread.h
index 5687aebb9..db925ab8f 100644
--- a/src/io_thread.h
+++ b/src/io_thread.h
@@ -37,6 +37,14 @@ io_thread_start(GError **error_r);
 void
 io_thread_run(void);
 
+/**
+ * Ask the I/O thread to quit, but does not wait for it.  Usually, you
+ * don't need to call this function, because io_thread_deinit()
+ * includes this.
+ */
+void
+io_thread_quit(void);
+
 void
 io_thread_deinit(void);
 
-- 
cgit v1.2.3