From 12545e32a138dee811ef73b779da52696d76393e Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Thu, 23 Apr 1998 18:03:07 -0500 Subject: [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; --- src/H5D.c | 2 -- src/H5Fmpio.c | 8 -------- 2 files changed, 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, -- cgit v0.12