fetcher: Explicitly join thread if it's not self
This fixes a valgrind leak; see [this StackOverflow thread](http://stackoverflow.com/questions/17642433/why-pthread-causes-a-memory-leak). Closes: #410 Approved by: giuseppe
This commit is contained in:
parent
544365f834
commit
ba21023d6c
|
|
@ -540,7 +540,14 @@ _ostree_fetcher_finalize (GObject *object)
|
||||||
|
|
||||||
/* Terminate the session thread. */
|
/* Terminate the session thread. */
|
||||||
g_main_loop_quit (self->thread_closure->main_loop);
|
g_main_loop_quit (self->thread_closure->main_loop);
|
||||||
g_clear_pointer (&self->session_thread, g_thread_unref);
|
if (self->session_thread)
|
||||||
|
{
|
||||||
|
/* We need to explicitly synchronize to clean up TLS */
|
||||||
|
if (self->session_thread != g_thread_self ())
|
||||||
|
g_thread_join (self->session_thread);
|
||||||
|
else
|
||||||
|
g_clear_pointer (&self->session_thread, g_thread_unref);
|
||||||
|
}
|
||||||
g_clear_pointer (&self->thread_closure, thread_closure_unref);
|
g_clear_pointer (&self->thread_closure, thread_closure_unref);
|
||||||
|
|
||||||
G_OBJECT_CLASS (_ostree_fetcher_parent_class)->finalize (object);
|
G_OBJECT_CLASS (_ostree_fetcher_parent_class)->finalize (object);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue