From 58854b0a9c57df8e93aa5f3ab464858ecb040da1 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Thu, 10 Jun 2021 18:34:29 +0200 Subject: [PATCH] vkd3d: Fix potential deadlock in descriptor QA checks. If we destroy device right after creating it, we risk a deadlock. Signed-off-by: Hans-Kristian Arntzen --- libs/vkd3d/descriptor_debug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d/descriptor_debug.c b/libs/vkd3d/descriptor_debug.c index 1b226668..96ceedbe 100644 --- a/libs/vkd3d/descriptor_debug.c +++ b/libs/vkd3d/descriptor_debug.c @@ -157,7 +157,8 @@ static void *vkd3d_descriptor_debug_qa_check_entry(void *userdata) { /* Don't spin endlessly, this thread is kicked after a successful fence wait. */ pthread_mutex_lock(&global_info->ring_lock); - pthread_cond_wait(&global_info->ring_cond, &global_info->ring_lock); + if (global_info->active) + pthread_cond_wait(&global_info->ring_cond, &global_info->ring_lock); active = global_info->active; pthread_mutex_unlock(&global_info->ring_lock);