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. */
|
||||
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_OBJECT_CLASS (_ostree_fetcher_parent_class)->finalize (object);
|
||||
|
|
|
|||
Loading…
Reference in New Issue