From: SooChan Lim Date: Wed, 16 Mar 2016 04:56:17 +0000 (+0900) Subject: add TBM_QUEUE_TRACE for debugging X-Git-Tag: accepted/tizen/common/20160321.145947^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=550106a6c3fe2b4315b90ff11f8f5948ea94b333;p=platform%2Fcore%2Fuifw%2Flibtbm.git add TBM_QUEUE_TRACE for debugging Change-Id: I4ff8099ef30e42dab3bc21c42d9102f126524267 --- diff --git a/src/tbm_surface_queue.c b/src/tbm_surface_queue.c old mode 100644 new mode 100755 index 2b597f6..7210173 --- a/src/tbm_surface_queue.c +++ b/src/tbm_surface_queue.c @@ -39,11 +39,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define DEBUG 0 #if DEBUG -#define TBM_TRACE() TBM_LOG("[TRACE] %s:%d surface:%p\n", __func__, __LINE__, surface_queue) +#define TBM_QUEUE_TRACE() TBM_LOG("[QUEUE_TRACE] %s:%d surface_queue:%p\n", __func__, __LINE__, surface_queue) #define TBM_LOCK() TBM_LOG("[LOCK] %s:%d surface:%p\n", __func__, __LINE__, surface_queue) #define TBM_UNLOCK() TBM_LOG("[UNLOCK] %s:%d surface:%p\n", __func__, __LINE__, surface_queue) #else -#define TBM_TRACE() +#define TBM_QUEUE_TRACE() #define TBM_LOCK() #define TBM_UNLOCK() #endif @@ -441,6 +441,8 @@ tbm_surface_queue_set_destroy_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + surface_queue->destroy_cb = destroy_cb; surface_queue->destroy_cb_data = data; @@ -459,6 +461,8 @@ tbm_surface_queue_add_destroy_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_add(&surface_queue->destory_noti, destroy_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -476,6 +480,8 @@ tbm_surface_queue_remove_destroy_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_remove(&surface_queue->destory_noti, destroy_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -493,6 +499,8 @@ tbm_surface_queue_set_dequeuable_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + surface_queue->dequeuable_cb = dequeuable_cb; surface_queue->dequeuable_cb_data = data; @@ -511,6 +519,8 @@ tbm_surface_queue_add_dequeuable_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_add(&surface_queue->dequeuable_noti, dequeuable_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -528,6 +538,8 @@ tbm_surface_queue_remove_dequeuable_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_remove(&surface_queue->dequeuable_noti, dequeuable_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -545,6 +557,8 @@ tbm_surface_queue_set_acquirable_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + surface_queue->acquirable_cb = acquirable_cb; surface_queue->acquirable_cb_data = data; @@ -563,6 +577,8 @@ tbm_surface_queue_add_acquirable_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_add(&surface_queue->acquirable_noti, acquirable_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -580,6 +596,8 @@ tbm_surface_queue_remove_acquirable_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_remove(&surface_queue->acquirable_noti, acquirable_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -599,6 +617,8 @@ tbm_surface_queue_set_alloc_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + surface_queue->alloc_cb = alloc_cb; surface_queue->free_cb = free_cb; surface_queue->alloc_cb_data = data; @@ -613,24 +633,40 @@ tbm_surface_queue_get_width(tbm_surface_queue_h surface_queue) { TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0); + TBM_QUEUE_TRACE(); + + TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0); + return surface_queue->width; } int tbm_surface_queue_get_height(tbm_surface_queue_h surface_queue) { + TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0); + + TBM_QUEUE_TRACE(); + return surface_queue->height; } int tbm_surface_queue_get_format(tbm_surface_queue_h surface_queue) { + TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0); + + TBM_QUEUE_TRACE(); + return surface_queue->format; } int tbm_surface_queue_get_size(tbm_surface_queue_h surface_queue) { + TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0); + + TBM_QUEUE_TRACE(); + return surface_queue->queue_size; } @@ -644,6 +680,8 @@ tbm_surface_queue_set_reset_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + surface_queue->reset_cb = reset_cb; surface_queue->reset_cb_data = data; @@ -662,6 +700,8 @@ tbm_surface_queue_add_reset_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_add(&surface_queue->acquirable_noti, reset_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -679,6 +719,8 @@ tbm_surface_queue_remove_reset_cb( pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + _notify_remove(&surface_queue->acquirable_noti, reset_cb, data); pthread_mutex_unlock(&surface_queue->lock); @@ -700,6 +742,8 @@ tbm_surface_queue_enqueue(tbm_surface_queue_h pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + node = _queue_get_node(surface_queue, 0, surface, &queue_type); if (node == NULL || queue_type != NODE_LIST) { TBM_LOG("tbm_surface_queue_enqueue::Surface exist in free_queue or dirty_queue node:%p, queue:%d\n", @@ -741,6 +785,8 @@ tbm_surface_queue_dequeue(tbm_surface_queue_h pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + if (surface_queue->impl && surface_queue->impl->dequeue) node = surface_queue->impl->dequeue(surface_queue); else @@ -773,6 +819,8 @@ tbm_surface_queue_can_dequeue(tbm_surface_queue_h surface_queue, int wait) pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + if (_queue_is_empty(&surface_queue->free_queue)) { if (surface_queue->impl && surface_queue->impl->need_attach) surface_queue->impl->need_attach(surface_queue); @@ -808,6 +856,8 @@ tbm_surface_queue_release(tbm_surface_queue_h pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + node = _queue_get_node(surface_queue, 0, surface, &queue_type); if (node == NULL || queue_type != NODE_LIST) { TBM_LOG("tbm_surface_queue_release::Surface exist in free_queue or dirty_queue node:%p, queue:%d\n", @@ -849,6 +899,8 @@ tbm_surface_queue_acquire(tbm_surface_queue_h pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + if (surface_queue->impl && surface_queue->impl->acquire) node = surface_queue->impl->acquire(surface_queue); else @@ -881,6 +933,8 @@ tbm_surface_queue_can_acquire(tbm_surface_queue_h surface_queue, int wait) pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + if (_queue_is_empty(&surface_queue->dirty_queue)) { if (wait) { pthread_cond_wait(&surface_queue->dirty_cond, &surface_queue->lock); @@ -904,6 +958,8 @@ tbm_surface_queue_destroy(tbm_surface_queue_h surface_queue) TBM_RETURN_IF_FAIL(surface_queue != NULL); + TBM_QUEUE_TRACE(); + if (surface_queue->destroy_cb) surface_queue->destroy_cb(surface_queue, surface_queue->destroy_cb_data); @@ -932,6 +988,8 @@ tbm_surface_queue_reset(tbm_surface_queue_h TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE); + TBM_QUEUE_TRACE(); + queue_node *node = NULL, *tmp = NULL; if (width == surface_queue->width && height == surface_queue->height && @@ -977,6 +1035,8 @@ tbm_surface_queue_flush(tbm_surface_queue_h surface_queue) pthread_mutex_lock(&surface_queue->lock); + TBM_QUEUE_TRACE(); + /* Destory surface and Push to free_queue */ LIST_FOR_EACH_ENTRY_SAFE(node, tmp, &surface_queue->list, link) { _queue_delete_node(surface_queue, node); @@ -1078,6 +1138,8 @@ tbm_surface_queue_create(int queue_size, int width, sizeof(struct _tbm_surface_queue)); TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, NULL); + TBM_QUEUE_TRACE(); + tbm_queue_default *data = (tbm_queue_default *) calloc(1, sizeof(tbm_queue_default)); if (data == NULL) { @@ -1210,6 +1272,8 @@ tbm_surface_queue_sequence_create(int queue_size, int width, sizeof(struct _tbm_surface_queue)); TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, NULL); + TBM_QUEUE_TRACE(); + tbm_queue_sequence *data = (tbm_queue_sequence *) calloc(1, sizeof(tbm_queue_sequence)); if (data == NULL) {