mutex: move pthread_cond_signal() outside of lock

Generally best practice to drop the lock before waking, if
possible.

Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/mutex.c b/mutex.c
index 9d10c2c..9ee3bd8 100644
--- a/mutex.c
+++ b/mutex.c
@@ -162,14 +162,19 @@
 
 void fio_mutex_up(struct fio_mutex *mutex)
 {
+	int do_wake = 0;
+
 	assert(mutex->magic == FIO_MUTEX_MAGIC);
 
 	pthread_mutex_lock(&mutex->lock);
 	read_barrier();
 	if (!mutex->value && mutex->waiters)
-		pthread_cond_signal(&mutex->cond);
+		do_wake = 1;
 	mutex->value++;
 	pthread_mutex_unlock(&mutex->lock);
+
+	if (do_wake)
+		pthread_cond_signal(&mutex->cond);
 }
 
 void fio_rwlock_write(struct fio_rwlock *lock)