#define DEBUG 0
#if DEBUG
-#define TBM_QUEUE_TRACE() TBM_LOG("[QUEUE_TRACE] %s:%d surface_queue:%p\n", __func__, __LINE__, surface_queue)
+#define TBM_QUEUE_TRACE(fmt, ...) fprintf(stderr, "[TBM(%d):%s] " fmt, getpid(), __func__, ##__VA_ARGS__)
#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_QUEUE_TRACE()
+#define TBM_QUEUE_TRACE(fmt, ...)
#define TBM_LOCK()
#define TBM_UNLOCK()
#endif
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
surface_queue->destroy_cb = destroy_cb;
surface_queue->destroy_cb_data = data;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_add(&surface_queue->destory_noti, destroy_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_remove(&surface_queue->destory_noti, destroy_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
surface_queue->dequeuable_cb = dequeuable_cb;
surface_queue->dequeuable_cb_data = data;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_add(&surface_queue->dequeuable_noti, dequeuable_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_remove(&surface_queue->dequeuable_noti, dequeuable_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
surface_queue->acquirable_cb = acquirable_cb;
surface_queue->acquirable_cb_data = data;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_add(&surface_queue->acquirable_noti, acquirable_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_remove(&surface_queue->acquirable_noti, acquirable_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
surface_queue->alloc_cb = alloc_cb;
surface_queue->free_cb = free_cb;
{
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0);
{
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
return surface_queue->height;
}
{
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
return surface_queue->format;
}
{
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, 0);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
return surface_queue->queue_size;
}
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
surface_queue->reset_cb = reset_cb;
surface_queue->reset_cb_data = data;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_add(&surface_queue->acquirable_noti, reset_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
_notify_remove(&surface_queue->acquirable_noti, reset_cb, data);
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p) tbm_surface(%p)\n", surface_queue, surface);
node = _queue_get_node(surface_queue, 0, surface, &queue_type);
if (node == NULL || queue_type != NODE_LIST) {
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
*surface = node->surface;
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p) tbm_surface(%p)\n", surface_queue, *surface);
+
pthread_mutex_unlock(&surface_queue->lock);
return TBM_SURFACE_QUEUE_ERROR_NONE;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
if (_queue_is_empty(&surface_queue->free_queue)) {
if (surface_queue->impl && surface_queue->impl->need_attach)
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p) tbm_surface(%p)\n", surface_queue, surface);
node = _queue_get_node(surface_queue, 0, surface, &queue_type);
if (node == NULL || queue_type != NODE_LIST) {
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
*surface = node->surface;
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p) tbm_surface(%p)\n", surface_queue, *surface);
+
pthread_mutex_unlock(&surface_queue->lock);
return TBM_SURFACE_QUEUE_ERROR_NONE;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
if (_queue_is_empty(&surface_queue->dirty_queue)) {
if (wait) {
TBM_RETURN_IF_FAIL(surface_queue != NULL);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
if (surface_queue->destroy_cb)
surface_queue->destroy_cb(surface_queue, surface_queue->destroy_cb_data);
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL,
TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
queue_node *node = NULL, *tmp = NULL;
pthread_mutex_lock(&surface_queue->lock);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
/* Destory surface and Push to free_queue */
LIST_FOR_EACH_ENTRY_SAFE(node, tmp, &surface_queue->list, link) {
sizeof(struct _tbm_surface_queue));
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, NULL);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
tbm_queue_default *data = (tbm_queue_default *) calloc(1,
sizeof(tbm_queue_default));
sizeof(struct _tbm_surface_queue));
TBM_RETURN_VAL_IF_FAIL(surface_queue != NULL, NULL);
- TBM_QUEUE_TRACE();
+ TBM_QUEUE_TRACE("tbm_surface_queue(%p)\n", surface_queue);
tbm_queue_sequence *data = (tbm_queue_sequence *) calloc(1,
sizeof(tbm_queue_sequence));