浏览代码

Follow-up to commit r2004

Cédric Augonnet 15 年之前
父节点
当前提交
b7da4c1368
共有 3 个文件被更改,包括 7 次插入7 次删除
  1. 1 1
      src/core/jobs.c
  2. 4 4
      src/datawizard/user_interactions.c
  3. 2 2
      src/drivers/gordon/driver_gordon.c

+ 1 - 1
src/core/jobs.c

@@ -82,7 +82,7 @@ void _starpu_wait_job(starpu_job_t j)
 	PTHREAD_MUTEX_LOCK(&j->sync_mutex);
 
 	while (!j->terminated)
-		pthread_cond_wait(&j->sync_cond, &j->sync_mutex);
+		PTHREAD_COND_WAIT(&j->sync_cond, &j->sync_mutex);
 
 	PTHREAD_MUTEX_UNLOCK(&j->sync_mutex);
 }

+ 4 - 4
src/datawizard/user_interactions.c

@@ -115,8 +115,8 @@ int starpu_sync_data_with_mem(starpu_data_handle handle, starpu_access_mode mode
 	}
 	else {
 		PTHREAD_MUTEX_LOCK(&statenode.lock);
-		if (!statenode.finished)
-			pthread_cond_wait(&statenode.cond, &statenode.lock);
+		while (!statenode.finished)
+			PTHREAD_COND_WAIT(&statenode.cond, &statenode.lock);
 		PTHREAD_MUTEX_UNLOCK(&statenode.lock);
 	}
 
@@ -221,8 +221,8 @@ int _starpu_prefetch_data_on_node_with_mode(starpu_data_handle handle, unsigned
 	}
 	else {
 		PTHREAD_MUTEX_LOCK(&statenode.lock);
-		if (!statenode.finished)
-			pthread_cond_wait(&statenode.cond, &statenode.lock);
+		while (!statenode.finished)
+			PTHREAD_COND_WAIT(&statenode.cond, &statenode.lock);
 		PTHREAD_MUTEX_UNLOCK(&statenode.lock);
 	}
 

+ 2 - 2
src/drivers/gordon/driver_gordon.c

@@ -445,8 +445,8 @@ void *_starpu_gordon_worker(void *arg)
 
 	/* wait for the progression thread to be ready */
 	PTHREAD_MUTEX_LOCK(&progress_mutex);
-	if (!progress_thread_is_inited)
-		pthread_cond_wait(&progress_cond, &progress_mutex);
+	while (!progress_thread_is_inited)
+		PTHREAD_COND_WAIT(&progress_cond, &progress_mutex);
 	PTHREAD_MUTEX_UNLOCK(&progress_mutex);
 
 	fprintf(stderr, "progress thread is running ... \n");