Browse Source

fix progress thread initialization

Cédric Augonnet 16 years ago
parent
commit
57cbb01334
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/drivers/gordon/driver_gordon.c

+ 5 - 1
src/drivers/gordon/driver_gordon.c

@@ -22,6 +22,8 @@
 #include "gordon_interface.h"
 #include <core/policies/sched_policy.h>
 
+static unsigned progress_thread_is_inited = 0;
+
 pthread_t progress_thread;
 
 pthread_cond_t progress_cond;
@@ -58,6 +60,7 @@ void *gordon_worker_progress(void *arg)
 #endif
 
 	pthread_mutex_lock(&progress_mutex);
+	progress_thread_is_inited = 1;
 	pthread_cond_signal(&progress_cond);
 	pthread_mutex_unlock(&progress_mutex);
 
@@ -467,7 +470,8 @@ void *gordon_worker(void *arg)
 
 	/* wait for the progression thread to be ready */
 	pthread_mutex_lock(&progress_mutex);
-	pthread_cond_wait(&progress_cond, &progress_mutex);
+	if (!progress_thread_is_inited)
+		pthread_cond_wait(&progress_cond, &progress_mutex);
 	pthread_mutex_unlock(&progress_mutex);
 
 	fprintf(stderr, "progress thread is running ... \n");