diff options
author | Eunhae Choi <eunhae1.choi@samsung.com> | 2016-11-16 16:16:31 +0900 |
---|---|---|
committer | Eunhae Choi <eunhae1.choi@samsung.com> | 2016-11-16 16:16:31 +0900 |
commit | 660e2936ec2ded6b130fe8b720453a886fc1a064 (patch) | |
tree | 669b1fc897cf89f3b445ad35c977c4a51a7374cb | |
parent | 749ab51e87f6a22b6c519ce0f290ca62eefbe49f (diff) | |
download | libmm-player-660e2936ec2ded6b130fe8b720453a886fc1a064.tar.gz libmm-player-660e2936ec2ded6b130fe8b720453a886fc1a064.tar.bz2 libmm-player-660e2936ec2ded6b130fe8b720453a886fc1a064.zip |
[v0.6.14] fix fd leak
Change-Id: Ida0fc16e9fd8cb31d8bd513037ec83856be7b0df
-rw-r--r-- | packaging/libmm-player.spec | 2 | ||||
-rw-r--r-- | src/mm_player_resource.c | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index c38c4ed..72bd49d 100644 --- a/packaging/libmm-player.spec +++ b/packaging/libmm-player.spec @@ -1,6 +1,6 @@ Name: libmm-player Summary: Multimedia Framework Player Library -Version: 0.6.13 +Version: 0.6.14 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_player_resource.c b/src/mm_player_resource.c index 7c7e879..5474c0e 100644 --- a/src/mm_player_resource.c +++ b/src/mm_player_resource.c @@ -296,8 +296,8 @@ static int set_resource_release_cb(MMPlayerResourceManager *resource_manager) static gpointer __mmplayer_launch_glib_murphy_loop(void *user_data) { - LOGI("Run mrp_loop"); MMPlayerResourceManager *resource_manager= (MMPlayerResourceManager *)user_data; + LOGI("Run mrp_loop"); g_main_loop_run(resource_manager->mrp_loop); LOGI("Murphy glib loop exit"); return NULL; @@ -484,15 +484,21 @@ int _mmplayer_resource_manager_deinit(MMPlayerResourceManager *resource_manager) mrp_res_delete_resource_set(resource_manager->rset); resource_manager->rset = NULL; } + if (resource_manager->context) { mrp_res_destroy(resource_manager->context); resource_manager->context = NULL; } + if (resource_manager->mrp_loop) { g_main_loop_quit(resource_manager->mrp_loop); + g_main_loop_unref(resource_manager->mrp_loop); resource_manager->mrp_loop = NULL; } + g_thread_join(resource_manager->starter); + g_thread_unref(resource_manager->starter); + resource_manager->starter = NULL; if (resource_manager->mloop) { mrp_mainloop_destroy(resource_manager->mloop); |