queue: don't unlock mutex before call alloc callback 49/193849/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 27 Nov 2018 03:49:48 +0000 (12:49 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 27 Nov 2018 03:49:48 +0000 (12:49 +0900)
tbm_surface_queue function must not be called in alloc callback

Change-Id: Ia4b6f1dee6c54395ae9de368868fdaae1ad765ed

src/tbm_surface_queue.c

index 28acf5a..764192d 100644 (file)
@@ -2048,11 +2048,7 @@ __tbm_queue_default_need_attach(tbm_surface_queue_h surface_queue)
                return;
 
        if (surface_queue->alloc_cb) {
-               pthread_mutex_unlock(&surface_queue->lock);
-               _tbm_surf_queue_mutex_unlock();
                surface = surface_queue->alloc_cb(surface_queue, surface_queue->alloc_cb_data);
-               _tbm_surf_queue_mutex_lock();
-               pthread_mutex_lock(&surface_queue->lock);
 
                /* silent return */
                if (!surface)
@@ -2167,11 +2163,7 @@ __tbm_queue_sequence_need_attach(tbm_surface_queue_h surface_queue)
                return;
 
        if (surface_queue->alloc_cb) {
-               pthread_mutex_unlock(&surface_queue->lock);
-               _tbm_surf_queue_mutex_unlock();
                surface = surface_queue->alloc_cb(surface_queue, surface_queue->alloc_cb_data);
-               _tbm_surf_queue_mutex_lock();
-               pthread_mutex_lock(&surface_queue->lock);
 
                /* silent return */
                if (!surface)