mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-27 08:01:04 +08:00
[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:
parent
647e187605
commit
12545e32a1
@ -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,
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user