summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>1998-04-23 23:03:07 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>1998-04-23 23:03:07 (GMT)
commit12545e32a138dee811ef73b779da52696d76393e (patch)
tree7a6a954300698e416eee18b315fffe1f5999f7e8
parent647e187605f9257db5dae9a07e338bf9a954f041 (diff)
downloadhdf5-12545e32a138dee811ef73b779da52696d76393e.zip
hdf5-12545e32a138dee811ef73b779da52696d76393e.tar.gz
hdf5-12545e32a138dee811ef73b779da52696d76393e.tar.bz2
[svn-r365] Problems:
When data is read or written out, some layers did an immediate return(SUCCEED) if number of elements to be accessed is zero. This caused problems when collective access is used. In a collective call, all processes in a communicator must call the lowest layer of MPIO routines even if some of them happen to access no date. Solutions: Eliminated all those pre-mature return if #element==0;
-rw-r--r--src/H5D.c2
-rw-r--r--src/H5Fmpio.c8
2 files changed, 0 insertions, 10 deletions
diff --git a/src/H5D.c b/src/H5D.c
index d59f67a..8461abf 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -1170,7 +1170,6 @@ H5D_read(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
"src and dest data spaces have different sizes");
}
- if (0==nelmts) HRETURN (SUCCEED);
if (NULL == (tconv_func = H5T_find(dataset->type, mem_type,
xfer_parms->need_bkg, &cdata))) {
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL,
@@ -1466,7 +1465,6 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
"src and dest data spaces have different sizes");
}
- if (0==nelmts) HRETURN (SUCCEED);
if (NULL == (tconv_func = H5T_find(mem_type, dataset->type,
xfer_parms->need_bkg, &cdata))) {
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL,
diff --git a/src/H5Fmpio.c b/src/H5Fmpio.c
index 0818dda..39307e5 100644
--- a/src/H5Fmpio.c
+++ b/src/H5Fmpio.c
@@ -403,10 +403,6 @@ H5F_mpio_read(H5F_low_t *lf, const H5F_access_t *access_parms,
fprintf(stdout, "Entering H5F_mpio_read\n" );
#endif
- /* Check empty read */
- if (0 == size)
- HRETURN(SUCCEED);
-
/* numeric conversion of offset and size */
if (SUCCEED != H5F_haddr_to_MPIOff( *addr, &mpi_off )) {
HRETURN_ERROR(H5E_IO, H5E_READERROR, FAIL,
@@ -519,10 +515,6 @@ H5F_mpio_write(H5F_low_t *lf, const H5F_access_t *access_parms,
fprintf(stdout, "Entering H5F_mpio_write\n" );
#endif
- /* Check empty write */
- if (0 == size)
- HRETURN(SUCCEED);
-
/* numeric conversion of offset and size */
if (SUCCEED != H5F_haddr_to_MPIOff( *addr, &mpi_off )) {
HRETURN_ERROR(H5E_IO, H5E_READERROR, FAIL,