diff options
author | Leon Arber <larber@ncsa.uiuc.edu> | 2005-02-09 18:19:54 (GMT) |
---|---|---|
committer | Leon Arber <larber@ncsa.uiuc.edu> | 2005-02-09 18:19:54 (GMT) |
commit | c7f2d5c41e387a01922a85550a31c8033e6b2c3d (patch) | |
tree | 13e67b4461e645081a0f48eb9d73a9dcd3d4c011 | |
parent | 81cfafde899c8978dae600247299a6f3a2fc64ec (diff) | |
download | hdf5-c7f2d5c41e387a01922a85550a31c8033e6b2c3d.zip hdf5-c7f2d5c41e387a01922a85550a31c8033e6b2c3d.tar.gz hdf5-c7f2d5c41e387a01922a85550a31c8033e6b2c3d.tar.bz2 |
[svn-r9969] Purpose:
Correction to previous print_manager_output bugfix
Description:
Although the previous bugfix did fix all the errors, it was not the correct way
to fix the problem. Since the manager will only buffer output when run in
parallel mode, in serial mode this function should not even be called.
Solution:
Wrapped print_manager_output in #define's to prevent it from being included in
serial builds.
Platforms tested:
heping (serial + parallel)
Misc. update:
-rw-r--r-- | tools/h5diff/h5diff_main.c | 3 | ||||
-rw-r--r-- | tools/lib/h5diff.c | 9 | ||||
-rw-r--r-- | tools/lib/h5diff.h | 3 | ||||
-rw-r--r-- | tools/lib/h5diff_util.c | 2 |
4 files changed, 12 insertions, 5 deletions
diff --git a/tools/h5diff/h5diff_main.c b/tools/h5diff/h5diff_main.c index 5c15d16..1c1823a 100644 --- a/tools/h5diff/h5diff_main.c +++ b/tools/h5diff/h5diff_main.c @@ -71,6 +71,7 @@ int main(int argc, const char *argv[]) #ifdef H5_HAVE_PARALLEL MPI_Status Status; + outBuffOffset = 0; #endif /* See what we were called as to determine whether to run serial or parallel version @@ -266,7 +267,9 @@ int main(int argc, const char *argv[]) if (!options.err_stat) { print_found(nfound); +#ifdef H5_HAVE_PARALLEL print_manager_output(); +#endif } } } diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c index 65959a2..2304f92 100644 --- a/tools/lib/h5diff.c +++ b/tools/lib/h5diff.c @@ -55,7 +55,6 @@ void phdiff_dismiss_workers(void) MPI_Send(NULL, 0, MPI_BYTE, i, MPI_TAG_END, MPI_COMM_WORLD); } -#endif /*------------------------------------------------------------------------- * Function: print_manager_output @@ -74,15 +73,21 @@ void phdiff_dismiss_workers(void) void print_manager_output(void) { /* If there was something we buffered, let's print it now */ - if(outBuffOffset>0) + if( (outBuffOffset>0) && g_Parallel) { printf("%s", outBuff); fflush(stdout); memset(outBuff, 0, OUTBUFF_SIZE); outBuffOffset = 0; } + else if( (outBuffOffset>0) && !g_Parallel) + { + printf("h5diff error: outBuffOffset>0, but we're not in parallel\n"); + } } +#endif + /*------------------------------------------------------------------------- * Function: h5diff * diff --git a/tools/lib/h5diff.h b/tools/lib/h5diff.h index b5fff64..a9d8458 100644 --- a/tools/lib/h5diff.h +++ b/tools/lib/h5diff.h @@ -81,9 +81,10 @@ hsize_t h5diff(const char *fname1, const char *objname1, const char *objname2, diff_opt_t *options); -void print_manager_output(void); + #ifdef H5_HAVE_PARALLEL void phdiff_dismiss_workers(void); +void print_manager_output(void); #endif #ifdef __cplusplus diff --git a/tools/lib/h5diff_util.c b/tools/lib/h5diff_util.c index dfd93c8..96d7b5e 100644 --- a/tools/lib/h5diff_util.c +++ b/tools/lib/h5diff_util.c @@ -22,8 +22,6 @@ unsigned char g_Parallel = 0; /*0 for serial, 1 for parallel */ char outBuff[OUTBUFF_SIZE]; unsigned int outBuffOffset; -extern int nID; - /*------------------------------------------------------------------------- * Function: parallel_print * |