vlc | branch: master | Rafaël Carré <[email protected]> | Wed Oct 17 13:12:50 2012 +0200| [ee02148b69a921bd28f77f0a9905bfea79083f78] | committer: Rafaël Carré
android: fix detached threads leak > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ee02148b69a921bd28f77f0a9905bfea79083f78 --- src/android/thread.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/android/thread.c b/src/android/thread.c index 2715388..7d15b2d 100644 --- a/src/android/thread.c +++ b/src/android/thread.c @@ -308,17 +308,25 @@ int vlc_cond_timedwait (vlc_cond_t *condvar, vlc_mutex_t *p_mutex, } /* pthread */ +static void clean_detached_thread(void *data) +{ + struct vlc_thread *thread = data; + + /* release thread handle */ + vlc_mutex_destroy(&thread->lock); + free(thread); +} static void *detached_thread(void *data) { vlc_thread_t th = data; thread = th; + + vlc_cleanup_push(clean_detached_thread, data); th->entry(th->data); + vlc_cleanup_run(); - /* release thread handle */ - vlc_mutex_destroy(&th->lock); - free(th); return NULL; } @@ -454,7 +462,6 @@ void vlc_testcancel (void) return; vlc_sem_post(&thread->finished); -#warning FIXME: memory leak for detached threads pthread_exit(NULL); } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
