diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2024-01-23 16:21:59 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-23 16:21:59 (GMT) |
commit | f86fe61c7f6fa43cc16d555f9c925e43baa3de8f (patch) | |
tree | cd51adf099e654b280297a184e7a3480dc8d8ed8 /src/H5Tpkg.h | |
parent | 7e48d4f767f1cea64b7642db39a9d38c2c2eda13 (diff) | |
download | hdf5-f86fe61c7f6fa43cc16d555f9c925e43baa3de8f.zip hdf5-f86fe61c7f6fa43cc16d555f9c925e43baa3de8f.tar.gz hdf5-f86fe61c7f6fa43cc16d555f9c925e43baa3de8f.tar.bz2 |
Remove cached datatype conversion path table entries on file close (#3942)
Remove cached datatype conversion path table entries on file close
When performing datatype conversions during I/O, the library
checks to see whether it can re-use a cached datatype conversion
pathway by performing comparisons between the source and destination
datatypes of the current operation and the source and destination
datatypes associated with each cached datatype conversion pathway.
For variable-length and reference datatypes, a comparison is made
between the VOL object for the file associated with these datatypes,
which may change as a file is closed and reopened. In workflows
involving a loop that opens a file, performs I/O on an object with a
variable-length or reference datatype and then closes the file, this
can lead to constant memory usage growth as the library compares the
file VOL objects between the datatypes as different and adds a new
cached conversion pathway entry on each iteration during I/O. This is
now fixed by clearing out any cached conversion pathway entries for
variable-length or reference datatypes associated with a particular
file when that file is closed.
Diffstat (limited to 'src/H5Tpkg.h')
-rw-r--r-- | src/H5Tpkg.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index b9e24be..ef5ba36 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -877,4 +877,7 @@ H5_DLL herr_t H5T__sort_name(const H5T_t *dt, int *map); /* Debugging functions */ H5_DLL herr_t H5T__print_stats(H5T_path_t *path, int *nprint /*in,out*/); +/* Testing functions */ +H5_DLL int H5T__get_path_table_npaths(void); + #endif /* H5Tpkg_H */ |