|
|
9cfe9a |
diff -up evolution-data-server-3.8.5/camel/camel-imapx-server.c.eds evolution-data-server-3.8.5/camel/camel-imapx-server.c
|
|
|
9cfe9a |
--- evolution-data-server-3.8.5/camel/camel-imapx-server.c.eds 2013-11-07 09:46:45.524877569 +0100
|
|
|
9cfe9a |
+++ evolution-data-server-3.8.5/camel/camel-imapx-server.c 2013-11-07 09:48:20.332871086 +0100
|
|
|
9cfe9a |
@@ -6963,13 +6963,8 @@ imapx_parser_thread (gpointer d)
|
|
|
9cfe9a |
|
|
|
9cfe9a |
g_clear_error (&local_error);
|
|
|
9cfe9a |
|
|
|
9cfe9a |
- return NULL;
|
|
|
9cfe9a |
-}
|
|
|
9cfe9a |
+ g_object_unref (is);
|
|
|
9cfe9a |
|
|
|
9cfe9a |
-static gpointer
|
|
|
9cfe9a |
-join_helper (gpointer thread)
|
|
|
9cfe9a |
-{
|
|
|
9cfe9a |
- g_thread_join (thread);
|
|
|
9cfe9a |
return NULL;
|
|
|
9cfe9a |
}
|
|
|
9cfe9a |
|
|
|
9cfe9a |
@@ -7041,14 +7036,8 @@ imapx_server_dispose (GObject *object)
|
|
|
9cfe9a |
}
|
|
|
9cfe9a |
QUEUE_UNLOCK (server);
|
|
|
9cfe9a |
|
|
|
9cfe9a |
- if (server->parser_thread) {
|
|
|
9cfe9a |
- if (server->parser_thread == g_thread_self ()) {
|
|
|
9cfe9a |
- GThread *thread;
|
|
|
9cfe9a |
-
|
|
|
9cfe9a |
- thread = g_thread_new (NULL, join_helper, server->parser_thread);
|
|
|
9cfe9a |
- g_thread_unref (thread);
|
|
|
9cfe9a |
- } else
|
|
|
9cfe9a |
- g_thread_join (server->parser_thread);
|
|
|
9cfe9a |
+ if (server->parser_thread != NULL) {
|
|
|
9cfe9a |
+ g_thread_unref (server->parser_thread);
|
|
|
9cfe9a |
server->parser_thread = NULL;
|
|
|
9cfe9a |
}
|
|
|
9cfe9a |
|
|
|
9cfe9a |
@@ -7288,7 +7277,8 @@ camel_imapx_server_connect (CamelIMAPXSe
|
|
|
9cfe9a |
if (!imapx_reconnect (is, cancellable, error))
|
|
|
9cfe9a |
return FALSE;
|
|
|
9cfe9a |
|
|
|
9cfe9a |
- is->parser_thread = g_thread_new (NULL, (GThreadFunc) imapx_parser_thread, is);
|
|
|
9cfe9a |
+ is->parser_thread = g_thread_new (
|
|
|
9cfe9a |
+ NULL, (GThreadFunc) imapx_parser_thread, g_object_ref (is));
|
|
|
9cfe9a |
|
|
|
9cfe9a |
return TRUE;
|
|
|
9cfe9a |
}
|