Explorar o código

mpi/src/starpu_mpi.c: fix mutexes

Nathalie Furmento %!s(int64=12) %!d(string=hai) anos
pai
achega
29e5315dbd
Modificáronse 1 ficheiros con 7 adicións e 2 borrados
  1. 7 2
      mpi/src/starpu_mpi.c

+ 7 - 2
mpi/src/starpu_mpi.c

@@ -976,13 +976,18 @@ static unsigned _starpu_mpi_progression_hook_func(void *arg STARPU_ATTRIBUTE_UNU
 {
 	unsigned may_block = 1;
 
-	STARPU_PTHREAD_MUTEX_LOCK(&mutex);
+	STARPU_PTHREAD_MUTEX_LOCK(&detached_requests_mutex);
 	if (!_starpu_mpi_req_list_empty(detached_requests))
 	{
+		STARPU_PTHREAD_MUTEX_UNLOCK(&detached_requests_mutex);
+		STARPU_PTHREAD_MUTEX_LOCK(&mutex);
 		STARPU_PTHREAD_COND_SIGNAL(&cond_progression);
+		STARPU_PTHREAD_MUTEX_UNLOCK(&mutex);
 		may_block = 0;
 	}
-	STARPU_PTHREAD_MUTEX_UNLOCK(&mutex);
+	else
+		STARPU_PTHREAD_MUTEX_UNLOCK(&detached_requests_mutex);
+
 
 	return may_block;
 }