diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2003-02-07 21:14:19 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2003-02-07 21:14:19 (GMT) |
commit | 168d67dbd20923feef30fb76c6b569ef2e5add4a (patch) | |
tree | 2bcfd51c39665400804e92ac0fb13d42b2df96c3 /test/bittests.c | |
parent | 4e8da9d2246a0bba1afb5c678346b2f1c4633c69 (diff) | |
download | hdf5-168d67dbd20923feef30fb76c6b569ef2e5add4a.zip hdf5-168d67dbd20923feef30fb76c6b569ef2e5add4a.tar.gz hdf5-168d67dbd20923feef30fb76c6b569ef2e5add4a.tar.bz2 |
[svn-r6383] Purpose:
New feature for developers.
Description:
Added "function stack" tracing to library. This allows developers (there
is no public API) to call H5FS_print within the library and get a listing
of the functions traversed to reach that point in the library. Eventually,
I may add support for reporting the parameters to each function also...
Mainly for debugging parallel I/O programs, but I think it will come in
handy in other cases also.
The function stack tracking is controlled with a configure switch:
--enable-funcstack, which defaults to enabled currently. When we branch
for 1.6, we should change the default setting on the branch to be disabled.
Also, added a destructor to the thread-specific keys when thread-safety is
turned on in the library. Otherwise, they were leaking memory and causing
difficult to debug errors in threaded programs (like the test/ttsafe test).
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) w/thread-safety enabled.
Misc. update:
Updated MANIFEST with new files added (src/H5FS.c & src/H5FDprivate.h)
Update release_docs/RELEASE with thread-safety bug fix.
Diffstat (limited to 'test/bittests.c')
-rw-r--r-- | test/bittests.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/bittests.c b/test/bittests.c index a5af191..e1f01f9 100644 --- a/test/bittests.c +++ b/test/bittests.c @@ -513,6 +513,14 @@ main (void) { int nerrors=0; + /* + * Open the library explicitly for thread-safe builds, so per-thread + * things are initialized correctly. + */ +#ifdef H5_HAVE_THREADSAFE + H5open(); +#endif /* H5_HAVE_THREADSAFE */ + nerrors += test_find ()<0?1:0; nerrors += test_set ()<0?1:0; nerrors += test_clear()<0?1:0; @@ -524,5 +532,9 @@ main (void) exit(1); } printf("All bit tests passed.\n"); + +#ifdef H5_HAVE_THREADSAFE + H5close(); +#endif /* H5_HAVE_THREADSAFE */ return 0; } |