diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2003-05-13 20:03:45 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2003-05-13 20:03:45 (GMT) |
commit | 394656ceba509c1c31005f844a707a7e3f6bfff5 (patch) | |
tree | 14ecbf00f94e956035d28773558e8a36ae33a939 | |
parent | 4010a6d9d1925b7538062518ba4ac3c731fbe590 (diff) | |
download | hdf5-394656ceba509c1c31005f844a707a7e3f6bfff5.zip hdf5-394656ceba509c1c31005f844a707a7e3f6bfff5.tar.gz hdf5-394656ceba509c1c31005f844a707a7e3f6bfff5.tar.bz2 |
[svn-r6868] Purpose:
Bug fix.
Description:
If the buffer holding the list of interfaces that are attempting to be
closed down becomes full, the library stops recording that an infinite loop has
occurred when shutting down the interfaces.
Solution:
Always return the correct "pending" information.
Also added ellipsis to the string of interfaces to try to make it more
obvious that the buffer became full.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committested
-rw-r--r-- | src/H5.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -201,10 +201,14 @@ H5_term_library(void) * way that would necessitate some cleanup work in the other interface. */ #define DOWN(F) \ - (((n=H5##F##_term_interface()) && at+5<sizeof loop)? \ + (((n=H5##F##_term_interface()) && at+8<sizeof loop)? \ (sprintf(loop+at, "%s%s", at?",":"", #F), \ at += HDstrlen(loop+at), \ - n):0) + n): \ + ((n>0 && at+5<sizeof loop)? \ + (sprintf(loop+at, "..."), \ + at += HDstrlen(loop+at), \ + n):n)) do { pending = 0; @@ -228,7 +232,7 @@ H5_term_library(void) /* Only display the error message if the user is interested in them. */ if (func) { fprintf(stderr, "HDF5: infinite loop closing library\n"); - fprintf(stderr, " %s...\n", loop); + fprintf(stderr, " %s\n", loop); } } |