Sfoglia il codice sorgente

Wait MPI sink workers finished before deleting node

Corentin Salingue 8 anni fa
parent
commit
2cfd0c3c44
1 ha cambiato i file con 7 aggiunte e 1 eliminazioni
  1. 7 1
      src/drivers/mpi/driver_mpi_sink.c

+ 7 - 1
src/drivers/mpi/driver_mpi_sink.c

@@ -33,8 +33,14 @@ void _starpu_mpi_sink_init(struct _starpu_mp_node *node)
 
 void _starpu_mpi_sink_deinit(struct _starpu_mp_node *node)
 {
+	int i;
+	node->is_running = 0;
+	for(i=0; i<node->nb_cores; i++)
+	{
+		sem_post(&node->sem_run_table[i]);
+		starpu_pthread_join(((starpu_pthread_t *)node->thread_table)[i],NULL);
+	}
         free(node->thread_table);
-        //TODO
 }
 
 void (*_starpu_mpi_sink_lookup (const struct _starpu_mp_node * node STARPU_ATTRIBUTE_UNUSED, char* func_name))(void)