| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
* Spelling fixes for codespell
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* First cut at replaceing the existing mutex with a recursive R/W lock.
This implementation has the following issues:
1) pthreads implementation only -- we still need a windows version.
2) must investigate thread cancelation issues
3) Error reporting is very poor. I followed the error reporting on
the existing thread safe code, but this should be re-visited and
improved.
Code is currently setup to use the new recursive R/W lock instead of
the global mutex to control entry to the library in threadsafe builds.
To revert to the global mutex, set H5TS__USE_REC_RW_LOCK_FOR_GLOBAL_MUTEX
in H5TSprivate.h to FALSE.
Added a reasonably robust regression test for the reursive R/W lock
in test/ttsafe_rec_rw_lock.c
Note that the change to hl/src/H5LTanalyse.c is an artifact of clang-format.
Tested serial threadsafe debug and production on jelly, and also regular
serial / debug.
On Windows builds, the new recursive R/W lock should not be built and
we should use the existing global mutex -- however this is not tested
at this time.
* Updates CMake to build recursive RW lock test
* Updates to allow building on Windows
* Moves #if statements to better protect non-RW lock code
* Adds configure and CMake options for the recursive RW locks
* Committing clang-format changes
* Updates RELEASE.txt and the build options
* Renames H5TS RW lock things
* Makes struct members platform independent
Also removes _ptr from identifiers
* Partial thread-safety RW locks platform independence
* Committing clang-format changes
* Pthreads side of things is platform-independent now
* Formatted source
* Added Windows equivalents for some Pthreads calls
* Rename H5TS takedown call to destroy
* Reorg of RW lock code
* Committing clang-format changes
* Changes to Pthreads code after development on Visual Studio
* Moves stats macros to static inline functions and tidies memory allocs
* Converts RW lock print stats call to use C99 formatting
* Fixes typos
* Formatted source
* Updates the RELEASE.txt note to indicate no Win32 threads support
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
|
|
|
|
| |
file - src and test directories.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* OESS-98 fix tools test for plugins
* sync fork
* Merge of changes from dev
* Move problem option to bottom of the list until fixed
* HDFFV-11106 - fix parsing optional args
* HDFFV-11106 add note
* grammer fix
* Whitespace after clang formatting
* Undo format version 11 changes
* Update check to working version
|
|
|
|
|
|
|
| |
* Basic alignment with async branch - trivial changes to reduce clutter in overall diff.
* Update minor error code to reflect change within library
* Update the error output to match library
|
| |
|
|
|
|
|
|
| |
header file, FUNC_ENTER / LEAVE, etc). Removed remaining personal email
addresses from library source code (still needs cleaned from other directories).
Misc. warning, style, and whitespace cleanup.
|
|
|
|
| |
of H5TS_thread_id().
|
|
|
|
|
| |
Fix a typo in the H5TS_thread_init() comment and reword some ID
properties.
|
|
|
|
|
| |
implementation ought to be portable to any system that has POSIX
Threads. On Windows, I use the same API call as before.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
hdf5_1_10
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
thread-safe library is built on Windows. Previously, thread-local storage was not cleaned up, causing resource leaks.
Fixes HDFFV-8518, HDFFV-8699
As a part of these changes, the thread-safe + static library options are declared unsupported since the solution relies on DllMain. A solution for the static library is probably doable, but requires much more complicated surgery and has been deferred to HDF5 1.8.14.
Tested on:
64-bit Windows 7 using VS 2012 (changes only affect Windows)
|
|
|
|
|
|
|
|
|
|
| |
Correct an error I convinced Mike to introduce with the phread_once()
code, :-( along with another one that wasn't my fault. Also, clean up
warnings and restructure code in the thread-safe code a bit.
Tested on:
Mac OS X/32 10.6.4 (amazon) w/production + thread-safe
(not a configuration that h5committest tests)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add windows threads support to HDF5.
Description:
Added calls to the windows threads library to the H5TS layer, and wrapped
most calls to either pthreads or windows threads library with portable
H5TS-style defines. Modified tests to use portable function definitions
as well.
This can be configured via CMake with the HDF5_ENABLE_THREADSAFE
option, and should work on windows vista and later operating systems.
Tested:
h5committest, plus threadsafe with pthreads on jam and amani,
and tested on a Windows Vista VM with threadsafe using windows threads.
|
|
|
|
|
|
|
|
| |
Streamline threadsafety code to be simpler and reduce latency of holding
locks.
Tested on:
Mac OS X/32 10.5.1 (amazon) w/threadsafe
|
|
|
|
|
|
|
|
|
| |
copyright notice.
Tested platform:
Kagiso only since it is only a comment block change. If it works in one
machine, it should work in all, I hope. Still need to check the parallel
build on copper.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Added some comments about the thread-specific memory for the error and
function stacks.
Changed H5close() to not use the function stack (since it causes it to
be re-enabled after shutting it down)
Changed thread-safe semaphore code to not use dynamicly allocated memory.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4
Too minor to require h5committest
|
| |
|
|
|
|
| |
Platforms tested: RH 8(simple checkin)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update
Description:
Updated copyright statement in files which hadn't been updated yet.
Platforms tested:
Linux (Only comment change)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
__DLL__ is a keyword in some platforms and __DLL__ is also defined as a macro for windows DLL applications.
That causes problems.
Description:
Solution:
Use H5_DLL*** to replace __DLL***__ at all header files.
Change the macro defination at H5api_adpt.h.
Platforms tested:
linux2.2.18smp, irix64, solaris 2.7 and windows 2000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update
Description:
Changed
#include <hdf_file.h>
construct to
#include "hdf_file.h"
so that the GNU compiler can more easily pick up the dependencies
which it places in the .depend and Dependencies files. Also
regenerated the Dependencies to go along with this.
Platforms tested:
Linux
|
|
|
|
|
|
|
|
|
|
|
|
| |
correct for all
platforms. Also, it's not entirely certain that a value of 0 isn't a
valid thread ID. So, I changed the pthread_t object to be a pointer to
pthread_t with the appropriate memory management this entails. Part of
the validity of this approach rests on the fact that one can assign a
variable which is a structure to another variable of the same type and
all fields within will be copied appropriately...See! C *does* do some
things correctly :-).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
return 0 on success and non-zero on failure. That's what happens with
these calls.
There was a problem compiling threading on Linux. The pthread_t type is
not consistent among different implementations, so it cannot simply be
assigned to NULL or tested against it. I initialize it by calling
HDmemset(foo_thread, 0, sizeof(pthread_t)). To see if it's a "null"
pthread, I created a special pthread_t object (assigned to only in the
init phase and then only read...i.e., thread safe) and assigned it "null"
as above. Then I use pthread_equal() to determine if the thread is null.
|
|
HDF5 coding
standards.
|