[mpich-commits] r10769 - in mpich2/trunk/src: include mpi/info mpi/init

buntinas at mcs.anl.gov buntinas at mcs.anl.gov
Sat Dec 15 15:49:05 CST 2012


Author: buntinas
Date: 2012-12-15 15:49:05 -0600 (Sat, 15 Dec 2012)
New Revision: 10769

Modified:
   mpich2/trunk/src/include/mpi.h.in
   mpich2/trunk/src/include/mpiimpl.h
   mpich2/trunk/src/mpi/info/infoutil.c
   mpich2/trunk/src/mpi/init/finalize.c
   mpich2/trunk/src/mpi/init/initthread.c
Log:
Fixed definition of builtin info object MPI_INFO_ENV to be consistent with other builtin objects.  Fixes #1762.  Reviewd by Balaji

Modified: mpich2/trunk/src/include/mpi.h.in
===================================================================
--- mpich2/trunk/src/include/mpi.h.in	2012-12-13 17:01:36 UTC (rev 10768)
+++ mpich2/trunk/src/include/mpi.h.in	2012-12-15 21:49:05 UTC (rev 10769)
@@ -484,11 +484,10 @@
 /* for info */
 typedef int MPI_Info;
 #define MPI_INFO_NULL         ((MPI_Info)0x1c000000)
+#define MPI_INFO_ENV          ((MPI_Info)0x5c000001)
 #define MPI_MAX_INFO_KEY       255
 #define MPI_MAX_INFO_VAL      1024
 
-extern MPI_Info MPI_INFO_ENV;
-
 /* for subarray and darray constructors */
 #define MPI_ORDER_C              56
 #define MPI_ORDER_FORTRAN        57

Modified: mpich2/trunk/src/include/mpiimpl.h
===================================================================
--- mpich2/trunk/src/include/mpiimpl.h	2012-12-13 17:01:36 UTC (rev 10768)
+++ mpich2/trunk/src/include/mpiimpl.h	2012-12-15 21:49:05 UTC (rev 10769)
@@ -417,7 +417,7 @@
 #define MPID_File_get_ptr(a,ptr)       MPID_Get_ptr(File,a,ptr)
 #define MPID_Errhandler_get_ptr(a,ptr) MPID_Getb_ptr(Errhandler,a,0x3,ptr)
 #define MPID_Op_get_ptr(a,ptr)         MPID_Getb_ptr(Op,a,0x000000ff,ptr)
-#define MPID_Info_get_ptr(a,ptr)       MPID_Get_ptr(Info,a,ptr)
+#define MPID_Info_get_ptr(a,ptr)       MPID_Getb_ptr(Info,a,0x03ffffff,ptr)
 #define MPID_Win_get_ptr(a,ptr)        MPID_Get_ptr(Win,a,ptr)
 #define MPID_Request_get_ptr(a,ptr)    MPID_Get_ptr(Request,a,ptr)
 #define MPID_Grequest_class_get_ptr(a,ptr) MPID_Get_ptr(Grequest_class,a,ptr)
@@ -584,6 +584,8 @@
 } MPID_Info;
 extern MPIU_Object_alloc_t MPID_Info_mem;
 /* Preallocated info objects */
+#define MPID_INFO_N_BUILTIN 2
+extern MPID_Info MPID_Info_builtin[MPID_INFO_N_BUILTIN];
 extern MPID_Info MPID_Info_direct[];
 /* ------------------------------------------------------------------------- */
 

Modified: mpich2/trunk/src/mpi/info/infoutil.c
===================================================================
--- mpich2/trunk/src/mpi/info/infoutil.c	2012-12-13 17:01:36 UTC (rev 10768)
+++ mpich2/trunk/src/mpi/info/infoutil.c	2012-12-15 21:49:05 UTC (rev 10769)
@@ -15,6 +15,7 @@
 #endif
 
 /* Preallocated info objects */
+MPID_Info MPID_Info_builtin[MPID_INFO_N_BUILTIN] = { { 0 } };
 MPID_Info MPID_Info_direct[MPID_INFO_PREALLOC] = { { 0 } };
 MPIU_Object_alloc_t MPID_Info_mem = { 0, 0, 0, 0, MPID_INFO, 
 				      sizeof(MPID_Info), MPID_Info_direct,

Modified: mpich2/trunk/src/mpi/init/finalize.c
===================================================================
--- mpich2/trunk/src/mpi/init/finalize.c	2012-12-13 17:01:36 UTC (rev 10768)
+++ mpich2/trunk/src/mpi/init/finalize.c	2012-12-15 21:49:05 UTC (rev 10769)
@@ -6,7 +6,6 @@
 /* style: allow:fprintf:1 sig:0 */
 
 #include "mpiimpl.h"
-#include "mpiinfo.h"
 #include "mpi_init.h"
 
 /* -- Begin Profiling Symbol Block for routine MPI_Finalize */
@@ -116,7 +115,6 @@
 {
     static const char FCNAME[] = "MPI_Finalize";
     int mpi_errno = MPI_SUCCESS;
-    MPID_Info *info_ptr;
 #if defined(HAVE_USLEEP) && defined(USE_COVERAGE)
     int rank=0;
 #endif
@@ -215,10 +213,6 @@
 	MPIU_ERR_POP(mpi_errno);
     }
 
-    MPID_Info_get_ptr(MPI_INFO_ENV, info_ptr);
-    MPIU_Info_free(info_ptr);
-    MPI_INFO_ENV = MPI_INFO_NULL;
-    
     /* Call the low-priority (post Finalize) callbacks */
     MPIR_Call_finalize_callbacks( 0, MPIR_FINALIZE_CALLBACK_PRIO-1 );
 

Modified: mpich2/trunk/src/mpi/init/initthread.c
===================================================================
--- mpich2/trunk/src/mpi/init/initthread.c	2012-12-13 17:01:36 UTC (rev 10768)
+++ mpich2/trunk/src/mpi/init/initthread.c	2012-12-15 21:49:05 UTC (rev 10769)
@@ -58,8 +58,6 @@
    how MPICH was configured. */
 extern const char MPIR_Version_device[];
 
-MPI_Info MPI_INFO_ENV = MPI_INFO_NULL;
-
 /* Make sure the Fortran symbols are initialized unless it will cause problems
    for C programs linked with the C compilers (i.e., not using the 
    compilation scripts).  These provide the declarations for the initialization
@@ -419,12 +417,17 @@
     MPIU_THREAD_CS_ENTER(INIT,required);
     exit_init_cs_on_failure = 1;
 
-    mpi_errno = MPIU_Info_alloc(&info_ptr);
-    if (mpi_errno)
-        goto fn_fail;
-
-    MPI_INFO_ENV = info_ptr->handle;
-
+    /* create MPI_INFO_NULL object */
+    /* FIXME: Currently this info object is empty, we need to add data to this
+       as defined by the standard. */
+    info_ptr = MPID_Info_builtin + 1;
+    info_ptr->handle = MPI_INFO_ENV;
+    MPIU_Object_set_ref(info_ptr, 1);
+    MPIU_THREAD_MPI_OBJ_INIT(info_ptr);
+    info_ptr->next  = NULL;
+    info_ptr->key   = NULL;
+    info_ptr->value = NULL;
+    
     mpi_errno = MPID_Init(argc, argv, required, &thread_provided, 
 			  &has_args, &has_env);
     if (mpi_errno) MPIU_ERR_POP(mpi_errno);



More information about the commits mailing list