diff options
author | Albert Cheng <acheng@hdfgroup.org> | 1998-04-23 23:03:07 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 1998-04-23 23:03:07 (GMT) |
commit | 12545e32a138dee811ef73b779da52696d76393e (patch) | |
tree | 7a6a954300698e416eee18b315fffe1f5999f7e8 /src | |
parent | 647e187605f9257db5dae9a07e338bf9a954f041 (diff) | |
download | hdf5-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;
Diffstat (limited to 'src')
-rw-r--r-- | src/H5D.c | 2 | ||||
-rw-r--r-- | src/H5Fmpio.c | 8 |
2 files changed, 0 insertions, 10 deletions
@@ -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, |