diff options
author | Volodymyr Brynza <v.brynza@samsung.com> | 2016-06-30 17:12:42 +0300 |
---|---|---|
committer | Volodymyr Brynza <v.brynza@samsung.com> | 2016-06-30 17:12:42 +0300 |
commit | 54e0539c8fbe7dd9bd88acabceac207e1798ce41 (patch) | |
tree | efba234d737c29ee6b8ba8b533543ddf4b9ec3b9 | |
parent | 21c4b11ff80bc17018db6257858814bee2d7e5f9 (diff) | |
download | libmm-player-accepted/tizen/mobile/20160704.090544.tar.gz libmm-player-accepted/tizen/mobile/20160704.090544.tar.bz2 libmm-player-accepted/tizen/mobile/20160704.090544.zip |
add mutex lock to resource set state callbacksubmit/tizen/20160704.004002accepted/tizen/wearable/20160704.090427accepted/tizen/tv/20160704.090525accepted/tizen/mobile/20160704.090544accepted/tizen/ivi/20160704.090640accepted/tizen/common/20160704.145327
Change-Id: I064f1e241186a223701be75efb8d5c071874f37d
Signed-off-by: Volodymyr Brynza <v.brynza@samsung.com>
-rw-r--r-- | src/mm_player_resource.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mm_player_resource.c b/src/mm_player_resource.c index aecb7ab..8929291 100644 --- a/src/mm_player_resource.c +++ b/src/mm_player_resource.c @@ -162,17 +162,18 @@ static void mrp_rset_state_callback(mrp_res_context_t *cx, const mrp_res_resourc MMPLAYER_FENTER(); + MMPLAYER_RESOURCE_LOCK(&player->resource_manager); + if(!mrp_res_equal_resource_set(rs, player->resource_manager.rset)) { LOGW("- resource set(%p) is not same as this player handle's(%p)", rs, player->resource_manager.rset); + MMPLAYER_RESOURCE_UNLOCK(&player->resource_manager); return; } if (rs->state == MRP_RES_RESOURCE_ACQUIRED) { player->resource_manager.state = RESOURCE_STATE_ACQUIRED; - MMPLAYER_RESOURCE_LOCK(&player->resource_manager); MMPLAYER_RESOURCE_SIGNAL(&player->resource_manager); - MMPLAYER_RESOURCE_UNLOCK(&player->resource_manager); } LOGD(" - resource set state of player(%p) is changed to [%s]\n", player, state_to_str(rs->state)); @@ -188,6 +189,7 @@ static void mrp_rset_state_callback(mrp_res_context_t *cx, const mrp_res_resourc mrp_res_delete_resource_set(player->resource_manager.rset); player->resource_manager.rset = mrp_res_copy_resource_set(rs); + MMPLAYER_RESOURCE_UNLOCK(&player->resource_manager); MMPLAYER_FLEAVE(); } @@ -483,8 +485,10 @@ int _mmplayer_resource_manager_unprepare(MMPlayerResourceManager *resource_manag } else { + MMPLAYER_RESOURCE_LOCK(resource_manager); mrp_res_delete_resource_set(resource_manager->rset); resource_manager->rset = NULL; + MMPLAYER_RESOURCE_UNLOCK(resource_manager); } resource_manager->state = RESOURCE_STATE_INITIALIZED; |