Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Force use of thread contexts when running fortran code.
authorpini <pini@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 7 Jan 2011 16:54:28 +0000 (16:54 +0000)
committerpini <pini@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 7 Jan 2011 16:54:28 +0000 (16:54 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9384 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/smpi/smpi_global.c

index fb4d167..b8938fa 100644 (file)
@@ -227,10 +227,12 @@ void smpi_global_destroy(void)
 /* With smpiff, the following weak symbols are replaced by those in libf2c */
 int __attribute__((weak)) xargc;
 char** __attribute__((weak)) xargv;
+int fortran = 1;
 
 int __attribute__((weak)) main(int argc, char** argv) {
    xargc = argc;
    xargv = argv;
+   fortran = 0;
    return MAIN__();
 }
 
@@ -256,6 +258,12 @@ int MAIN__(void)
                    xbt_cfgelm_double, &default_threshold, 1, 1, NULL,
                    NULL);
 
+  if(fortran) {
+    /* Force thread contexts with fortran code */
+    extern void SIMIX_ctx_thread_factory_init(smx_context_factory_t *factory);
+    smx_factory_initializer_to_use = SIMIX_ctx_thread_factory_init;
+  }
+
 #ifdef HAVE_TRACING
   TRACE_global_init(&xargc, xargv);
 #endif