]> AND Public Git Repository - simgrid.git/blobdiff - src/smpi/smpi_global.c
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / src / smpi / smpi_global.c
index e90b83a11c3f9855b39c28a56a92664cbac4ca91..37f8dd0cccaf7afd3f7cf00c98183ab66cf750cc 100644 (file)
@@ -86,6 +86,8 @@ void smpi_process_init(int *argc, char ***argv)
     simcall_rdv_set_receiver(data->mailbox_small, proc);
     XBT_DEBUG("<%d> New process in the game: %p", index, proc);
   }
+  if (smpi_process_data() == NULL)
+    xbt_die("smpi_process_data() returned NULL. You probably gave a NULL parameter to MPI_Init. Although it's required by MPI-2, this is currently not supported by SMPI.");
 }
 
 void smpi_process_destroy(void)
@@ -100,6 +102,12 @@ void smpi_process_destroy(void)
  */
 void smpi_process_finalize(void)
 {
+#if 0
+  // wait for all pending asynchronous comms to finish
+  while (SIMIX_process_has_pending_comms(SIMIX_process_self())) {
+    simcall_process_sleep(0.01);
+  }
+#else
   int i;
   int size = smpi_comm_size(MPI_COMM_WORLD);
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
@@ -131,7 +139,7 @@ void smpi_process_finalize(void)
     smpi_mpi_waitall( size-1, requests+1, MPI_STATUSES_IGNORE );
     free( requests );
   }
-
+#endif
 }
 
 /**