From a26a9e68819dab5f9c8eed821d8a686fffabbc5b Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 8 Aug 2014 17:13:02 +0200 Subject: [PATCH] df: unlock retire_mutex on early exit If pthread_cond_wait fails and the thread worker ends, make sure to unlock retire_mutex, which has been locked for the condition. The return value of pthread_mutex_unlock is ignored, as there's nothing that can be done with it at that point. --- df/parallel.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/df/parallel.c b/df/parallel.c index 047735ef3..6d2e1cffb 100644 --- a/df/parallel.c +++ b/df/parallel.c @@ -33,6 +33,8 @@ #include #endif +#include "ignore-value.h" + #include "guestfs.h" #include "guestfs-internal-frontend.h" #include "options.h" @@ -224,6 +226,7 @@ worker_thread (void *thread_data_vp) if (err != 0) { thread_failure ("pthread_cond_wait", err); thread_data->r = -1; + ignore_value (pthread_mutex_unlock (&retire_mutex)); return &thread_data->r; } }