[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;
This commit is contained in:
Albert Cheng 1998-04-23 18:03:07 -05:00
parent 647e187605
commit 12545e32a1
2 changed files with 0 additions and 10 deletions

View File

@ -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,

View File

@ -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,