From ba845615831ad67d7345d1c36e4be642d2ae2a60 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Tue, 9 Jul 2013 15:20:32 +0900 Subject: [PATCH] lock after map and unlock before unmap Change-Id: I587f6dbc64ed82b9f6741b0664c76cad82366fcc --- src/tbm_bufmgr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tbm_bufmgr.c b/src/tbm_bufmgr.c index b1c764c..417ef11 100755 --- a/src/tbm_bufmgr.c +++ b/src/tbm_bufmgr.c @@ -1193,9 +1193,10 @@ tbm_bo_map (tbm_bo bo, int device, int opt) pthread_mutex_lock (&bufmgr->lock); - _tbm_bo_lock (bo, device, opt); bo_handle = bufmgr->backend->bo_map (bo, device, opt); + _tbm_bo_lock (bo, device, opt); + if (bufmgr->use_map_cache == 1 && bo->map_cnt == 0) _tbm_bo_set_state (bo, device, opt); @@ -1219,6 +1220,8 @@ tbm_bo_unmap (tbm_bo bo) pthread_mutex_lock (&bufmgr->lock); + _tbm_bo_unlock (bo); + ret = bufmgr->backend->bo_unmap (bo); /* decrease the map_count */ @@ -1227,8 +1230,6 @@ tbm_bo_unmap (tbm_bo bo) if (bo->map_cnt == 0) _tbm_bo_save_state (bo); - _tbm_bo_unlock (bo); - pthread_mutex_unlock (&bufmgr->lock); return ret; -- 2.7.4