From 53e61274b17a6fe63de8d75059a9310c2289d1a6 Mon Sep 17 00:00:00 2001 From: Roman Marchenko Date: Wed, 15 Jun 2016 17:15:47 +0300 Subject: [PATCH] fix deadlock Change-Id: I426b1067f729db754611824642b13e9ced8a7a9b Signed-off-by: Roman Marchenko --- src/tdm_display.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tdm_display.c b/src/tdm_display.c index ef0b1ca..11e09bc 100644 --- a/src/tdm_display.c +++ b/src/tdm_display.c @@ -949,8 +949,10 @@ tdm_output_cb_commit(tdm_output *output_backend, unsigned int sequence, _pthread_mutex_lock(&private_display->lock); if (private_layer->buffer_queue) { + _pthread_mutex_unlock(&private_display->lock); tbm_surface_queue_release(private_layer->buffer_queue, private_layer->showing_buffer); + _pthread_mutex_lock(&private_display->lock); } } @@ -1624,6 +1626,7 @@ _tbm_layer_queue_acquirable_cb(tbm_surface_queue_h surface_queue, void *data) if (ret == TDM_ERROR_NONE) { if (private_layer->waiting_buffer) { + TDM_DBG("layer(%p) drop waiting_buffer(%p)", private_layer, private_layer->waiting_buffer); _pthread_mutex_unlock(&private_display->lock); tdm_buffer_unref_backend(private_layer->waiting_buffer); tbm_surface_queue_release(private_layer->buffer_queue, -- 2.7.4