summaryrefslogtreecommitdiffstats
path: root/src/H5FP.c
diff options
context:
space:
mode:
authorBill Wendling <wendling@ncsa.uiuc.edu>2003-08-15 00:30:21 (GMT)
committerBill Wendling <wendling@ncsa.uiuc.edu>2003-08-15 00:30:21 (GMT)
commitad13ea65abf246f25841f1bb32ee232c1767b9df (patch)
tree0ced53d37b2689643234f6919cc5f101bc905081 /src/H5FP.c
parentef90db21a40b8892b79991ecb66b29b305e102de (diff)
downloadhdf5-ad13ea65abf246f25841f1bb32ee232c1767b9df.zip
hdf5-ad13ea65abf246f25841f1bb32ee232c1767b9df.tar.gz
hdf5-ad13ea65abf246f25841f1bb32ee232c1767b9df.tar.bz2
[svn-r7367] Purpose:
Update Description: Added an extra flag to the clear functions that triggers a "destroy" of the object being cleared if necessary. This is a fix for the FPHDF5 stuff which had an object sticking around after it was cleared. (In FPHDF5, some processes are in charge of destroying the object, but all processes might actually allocate the object.) Platforms tested: AIX (Copper: Fortran & C++) Linux (Verbena: Fortran & C++) IRIX (Modi4: Parallel & Fortran) (Sol is down) Misc. update:
Diffstat (limited to 'src/H5FP.c')
-rw-r--r--src/H5FP.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/H5FP.c b/src/H5FP.c
index 60c73e3..5f38f5e 100644
--- a/src/H5FP.c
+++ b/src/H5FP.c
@@ -119,6 +119,8 @@ H5FPinit(MPI_Comm comm, int sap_rank, MPI_Comm *sap_comm, MPI_Comm *sap_barrier_
if ((mrc = MPI_Comm_rank(H5FP_SAP_COMM, (int *)&my_rank)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Comm_rank failed", mrc);
+ H5FP_capt_barrier_rank = 0;
+
/* Get the rank of the captain in the barrier Comm */
if (H5FP_capt_rank == (unsigned)my_rank)
if ((mrc = MPI_Comm_rank(H5FP_SAP_BARRIER_COMM,
@@ -341,24 +343,21 @@ H5FP_commit_sap_datatypes(void)
block_length[0] = 8;
block_length[1] = 1;
block_length[2] = 4;
- block_length[3] = 1;
- block_length[4] = sizeof(sap_req.oid);
+ block_length[3] = 2;
old_types[0] = MPI_UNSIGNED;
old_types[1] = MPI_UNSIGNED_LONG;
old_types[2] = MPI_LONG_LONG_INT;
old_types[3] = HADDR_AS_MPI_TYPE;
- old_types[4] = MPI_UNSIGNED_CHAR;
MPI_Address(&sap_req.req_id, &displs[0]);
MPI_Address(&sap_req.feature_flags, &displs[1]);
MPI_Address(&sap_req.meta_block_size, &displs[2]);
MPI_Address(&sap_req.addr, &displs[3]);
- MPI_Address(&sap_req.oid, &displs[4]);
/* Calculate the displacements */
for (i = 4; i >= 0; --i)
displs[i] -= displs[0];
- if (MPI_Type_struct(5, block_length, displs, old_types, &H5FP_request) != MPI_SUCCESS)
+ if (MPI_Type_struct(4, block_length, displs, old_types, &H5FP_request) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_struct failed");
if (MPI_Type_commit(&H5FP_request) != MPI_SUCCESS)
@@ -366,7 +365,7 @@ H5FP_commit_sap_datatypes(void)
/* Commit the H5FP_reply datatype */
block_length[0] = 4;
- old_types[0] = MPI_INT;
+ old_types[0] = MPI_UNSIGNED;
MPI_Address(&sap_reply.req_id, &displs[0]);
/* Calculate the displacements */