From 4b995772222e0b6129a1fc128d42e6845dd8896d Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Wed, 20 Mar 2019 15:52:24 +0900 Subject: [PATCH] Revert "surface_queue: use MONOTOINIC timer in pthread_cond" This reverts commit 7aca14d80aeab3cd919dee892f7acc4394287394. Change-Id: Ic27993d46b21b8a245f1d461dc4668d98439b7b8 --- src/tbm_surface_queue.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/tbm_surface_queue.c b/src/tbm_surface_queue.c index 5d405e0..2377a3f 100644 --- a/src/tbm_surface_queue.c +++ b/src/tbm_surface_queue.c @@ -33,7 +33,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "tbm_bufmgr_int.h" #include "list.h" -#include #define FREE_QUEUE 1 #define DIRTY_QUEUE 2 @@ -592,8 +591,6 @@ _tbm_surface_queue_init(tbm_surface_queue_h surface_queue, int width, int height, int format, const tbm_surface_queue_interface *impl, void *data) { - pthread_condattr_t attr; - TBM_RETURN_IF_FAIL(surface_queue != NULL); TBM_RETURN_IF_FAIL(impl != NULL); @@ -601,12 +598,8 @@ _tbm_surface_queue_init(tbm_surface_queue_h surface_queue, _init_tbm_surf_queue_bufmgr(); pthread_mutex_init(&surface_queue->lock, NULL); - - pthread_condattr_init(&attr); - pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); - pthread_cond_init(&surface_queue->free_cond, &attr); - pthread_cond_init(&surface_queue->dirty_cond, &attr); - pthread_condattr_destroy(&attr); + pthread_cond_init(&surface_queue->free_cond, NULL); + pthread_cond_init(&surface_queue->dirty_cond, NULL); surface_queue->queue_size = queue_size; surface_queue->width = width; @@ -1360,18 +1353,13 @@ tbm_surface_queue_can_dequeue_wait_timeout(tbm_surface_queue_h surface_queue, in _tbm_surf_queue_mutex_unlock(); while (1) { - clock_gettime(CLOCK_MONOTONIC, &tp); + clock_gettime(CLOCK_REALTIME, &tp); if (ms_timeout > 1000) tp.tv_sec += ms_timeout / 1000; tp.tv_nsec += (ms_timeout % 1000) * 1000000; - if (tp.tv_nsec > 1000000000L) { - tp.tv_sec++; - tp.tv_nsec -= 1000000000L; - } - ret = pthread_cond_timedwait(&surface_queue->free_cond, &surface_queue->lock, &tp); if (ret) { if (ret == ETIMEDOUT) { @@ -1381,7 +1369,8 @@ tbm_surface_queue_can_dequeue_wait_timeout(tbm_surface_queue_h surface_queue, in } else { TBM_INFO("surface_queue:%p timedwait error retry wait", surface_queue); } - } else { + } + else { pthread_mutex_unlock(&surface_queue->lock); return TBM_SURFACE_QUEUE_ERROR_NONE; } -- 2.7.4