Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Better fix for r7026.
authorpini <pini@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 28 Jan 2010 10:13:00 +0000 (10:13 +0000)
committerpini <pini@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 28 Jan 2010 10:13:00 +0000 (10:13 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7029 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/smpi/private.h
src/smpi/smpi_global.c

index 3ee7f8b..7f9170c 100644 (file)
@@ -151,6 +151,7 @@ void smpi_bench_begin(void);
 void smpi_bench_end(void);
 void smpi_bench_skip(void);
 
+void smpi_init(void);
 void smpi_global_init(void);
 void smpi_global_destroy(void);
 int smpi_process_index(void);
index e242d92..4f60f00 100644 (file)
@@ -136,6 +136,11 @@ void smpi_mpi_min_func(void *a, void *b, int *length,
 void smpi_mpi_max_func(void *a, void *b, int *length,
                        MPI_Datatype * datatype);
 
+void smpi_init()
+{
+  smpi_global = xbt_new(s_smpi_global_t, 1);
+}
+
 void smpi_global_init()
 {
   int i;
@@ -151,8 +156,6 @@ void smpi_global_init()
   XBT_LOG_CONNECT(smpi_util, smpi);
 #endif
 
-  smpi_global = xbt_new(s_smpi_global_t, 1);
-
   // config vars
   smpi_global->reference_speed =
     xbt_cfg_get_double(_surf_cfg_set, "reference_speed");
@@ -313,11 +316,8 @@ smx_cond_t smpi_process_cond()
 
 static void smpi_cfg_cb_host_speed(const char *name, int pos)
 {
-  if(smpi_global)
-  {
-    smpi_global->reference_speed =
-      xbt_cfg_get_double_at(_surf_cfg_set, name, pos);
-  }
+  smpi_global->reference_speed =
+    xbt_cfg_get_double_at(_surf_cfg_set, name, pos);
 }
 
 int smpi_run_simulation(int *argc, char **argv)
@@ -335,6 +335,9 @@ int smpi_run_simulation(int *argc, char **argv)
                    "Boolean indicating whether we should display the timing after simulation.",
                    xbt_cfgelm_int, &default_display_timing, 1, 1, NULL, NULL);
 
+  // Allocate minimal things before parsing command line arguments
+  smpi_init();
+
   SIMIX_global_init(argc, argv);