[0.6.49] add lock when destroy thread 86/131086/1
authorEunhae Choi <eunhae1.choi@samsung.com>
Thu, 25 May 2017 09:56:27 +0000 (18:56 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Thu, 25 May 2017 09:56:27 +0000 (18:56 +0900)
Change-Id: I81538f265d3bfd8461e9093461a0fe8f37f86351

packaging/libmm-player.spec
src/mm_player_priv.c

index 5e01b4313fa58d1fd1cec49fbd3403b8a84eda3a..593c7a04b7718117c057d0a915b3f4cd4931f5b7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.48
+Version:    0.6.49
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 80809a7f3bd2f99b1d26b915482a8ed45477a2d6..559e5acee6bec32b3435b221669388de1fb0a2c6 100644 (file)
@@ -8552,8 +8552,10 @@ ERROR:
 
        /* free thread */
        if (player->repeat_thread) {
+               MMPLAYER_REPEAT_THREAD_LOCK(player);
                player->repeat_thread_exit = TRUE;
                MMPLAYER_REPEAT_THREAD_SIGNAL(player);
+               MMPLAYER_REPEAT_THREAD_UNLOCK(player);
 
                g_thread_join(player->repeat_thread);
                player->repeat_thread = NULL;
@@ -8564,8 +8566,10 @@ ERROR:
 
        /* free next play thread */
        if (player->next_play_thread) {
+               MMPLAYER_NEXT_PLAY_THREAD_LOCK(player);
                player->next_play_thread_exit = TRUE;
                MMPLAYER_NEXT_PLAY_THREAD_SIGNAL(player);
+               MMPLAYER_NEXT_PLAY_THREAD_UNLOCK(player);
 
                g_thread_join(player->next_play_thread);
                player->next_play_thread = NULL;
@@ -8770,8 +8774,10 @@ _mmplayer_destroy(MMHandleType handle) // @
 
        /* release repeat thread */
        if (player->repeat_thread) {
+               MMPLAYER_REPEAT_THREAD_LOCK(player);
                player->repeat_thread_exit = TRUE;
                MMPLAYER_REPEAT_THREAD_SIGNAL(player);
+               MMPLAYER_REPEAT_THREAD_UNLOCK(player);
 
                LOGD("waitting for repeat thread exit\n");
                g_thread_join(player->repeat_thread);
@@ -8782,8 +8788,10 @@ _mmplayer_destroy(MMHandleType handle) // @
 
        /* release next play thread */
        if (player->next_play_thread) {
+               MMPLAYER_NEXT_PLAY_THREAD_LOCK(player);
                player->next_play_thread_exit = TRUE;
                MMPLAYER_NEXT_PLAY_THREAD_SIGNAL(player);
+               MMPLAYER_NEXT_PLAY_THREAD_UNLOCK(player);
 
                LOGD("waitting for next play thread exit\n");
                g_thread_join(player->next_play_thread);