Must unlock mutex if pthread_cond_wait succeeds.
diff --git a/cgminer.c b/cgminer.c
index 043ee12..753d5a3 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -2486,13 +2486,17 @@ int restart_wait(struct timeval *tdiff)
{
struct timeval now, then;
struct timespec abstime;
+ int rc;
gettimeofday(&now, NULL);
timeradd(&now, tdiff, &then);
abstime.tv_sec = then.tv_sec;
abstime.tv_nsec = then.tv_usec * 1000;
mutex_lock(&restart_lock);
- return pthread_cond_timedwait(&restart_cond, &restart_lock, &abstime);
+ rc = pthread_cond_timedwait(&restart_cond, &restart_lock, &abstime);
+ if (!rc)
+ mutex_unlock(&restart_lock);
+ return rc;
}
static void restart_threads(void)