From: Volodymyr Brynza Date: Thu, 30 Jun 2016 14:12:42 +0000 (+0300) Subject: add mutex lock to resource set state callback X-Git-Tag: submit/tizen/20160704.004002^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=54e0539c8fbe7dd9bd88acabceac207e1798ce41;p=platform%2Fcore%2Fmultimedia%2Flibmm-player.git add mutex lock to resource set state callback Change-Id: I064f1e241186a223701be75efb8d5c071874f37d Signed-off-by: Volodymyr Brynza --- 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;