Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/non_rec_rwlock' into non_rec_rwl…
Browse files Browse the repository at this point in the history
…ock_mercury
  • Loading branch information
qkoziol committed Jun 27, 2024
2 parents ec3a623 + d2ee4cd commit f71fab3
Show file tree
Hide file tree
Showing 21 changed files with 2,716 additions and 3,824 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cmake-bintest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ jobs:
# MacOS w/ Clang + CMake
#
name: "MacOS Clang Binary Test"
runs-on: macos-13
runs-on: macos-latest
steps:
- name: Install Dependencies (MacOS)
run: brew install ninja doxygen
Expand Down
40 changes: 35 additions & 5 deletions .github/workflows/main-cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
name:
- "Windows MSVC"
- "Ubuntu gcc"
- "MacOS-13 Clang"
- "MacOS Clang"

# This is where we list the bulk of the options for each configuration.
Expand Down Expand Up @@ -82,15 +83,35 @@ jobs:
generator: "-G Ninja"
run_tests: true

# MacOS w/ Clang + CMake
#
# We could also build with the Autotools via brew installing them,
# but that seems unnecessary
- name: "MacOS-13 Clang"
os: macos-13
cpp: OFF
fortran: ON
java: ON
docs: ON
libaecfc: ON
localaec: OFF
zlibfc: ON
localzlib: OFF
parallel: OFF
mirror_vfd: ON
direct_vfd: OFF
ros3_vfd: OFF
generator: "-G Ninja"
run_tests: true

# MacOS w/ Clang + CMake
#
# We could also build with the Autotools via brew installing them,
# but that seems unnecessary
- name: "MacOS Clang"
os: macos-13
cpp: ON
fortran: OFF
os: macos-latest
cpp: OFF
fortran: ON
java: ON
docs: ON
libaecfc: ON
Expand Down Expand Up @@ -134,7 +155,16 @@ jobs:

- name: Install Dependencies (macOS)
run: brew install ninja
if: matrix.os == 'macos-13'
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-latest' }}

# symlinks the compiler executables to a common location
- name: Install GNU Fortran (macOS)
uses: fortran-lang/setup-fortran@v1
id: setup-fortran
with:
compiler: gcc
version: 12
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-latest' }}

- name: Install Dependencies
uses: ssciwr/doxygen-install@v1
Expand Down Expand Up @@ -261,4 +291,4 @@ jobs:
name: tgz-osx-${{ inputs.build_mode }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.os == 'macos-13') && (inputs.thread_safety != 'TS') }}
if: ${{ (matrix.os == 'macos-latest') && (inputs.thread_safety != 'TS') }}
5 changes: 2 additions & 3 deletions .github/workflows/markdown-link-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ name: Check Markdown links
# Triggers the workflow on push or pull request or on demand
on:
workflow_dispatch:
push:
pull_request:
branches: [ develop ]
schedule:
- cron: "0 10 * * 6"

# The config file handles things like http 500 errors from sites like GitLab
# and http 200 responses
Expand Down
9 changes: 8 additions & 1 deletion fortran/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,14 @@ set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR})
if (BUILD_SHARED_LIBS)
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR}/shared)
else ()
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR}/static)
endif ()
if (NOT HDF5_INSTALL_MOD_FORTRAN MATCHES "NO")
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
endif ()
set (_PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_NAME}")
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
set (PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_NAME}")
Expand Down
9 changes: 8 additions & 1 deletion hl/fortran/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,14 @@ set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR})
if (BUILD_SHARED_LIBS)
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR}/shared)
else ()
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR}/static)
endif ()
if (NOT HDF5_INSTALL_MOD_FORTRAN MATCHES "NO")
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
endif ()
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_NAME}")
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
set (PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_NAME}")
Expand Down
22 changes: 11 additions & 11 deletions src/H5CX.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,17 +167,17 @@
* H5CX_TEST_SET_PROP and H5CX_SET_PROP macros to work properly.
*
* - "Return-and-read" properties that are returned to the application to send out introspection information,
* but are also queried by the library internally. Internal queries always retrieve the original value
* from the property list, and update the context's value to match. These properties have both a 'valid'
* and 'set' flag. <foo>_valid is true if the field has ever been populated from its underlying property
* list. <foo>_set flag is true if this field has ever been set on the context for application
* introspection. The naming of these fields is important for the H5CX_RETRIEVE_PROP_VALID_SET macro to
* work properly.
*
* Note that if a set operation is followed by an internal read, it is possible for <foo>_set to be true
* while the value in the context matches the underlying property list, resulting in a redundant write to
* the property list when the context is popped. Similarly, if a field has been set on the context but
* never read internally, <foo>_valid will be false despite the context containing a meaningful value.
* but are also queried by the library internally. If the context value has been 'set' by an accessor,
* all future queries will return the stored value from the context, to avoid later queries overwriting
* that stored value with the value from the property list.
*
* These properties have both a 'valid' and 'set' flag. <foo>_valid is true if the field has ever been
* populated from its underlying property list. <foo>_set flag is true if this field has ever been set on
* the context for application introspection. The naming of these fields is important for the
* H5CX_RETRIEVE_PROP_VALID_SET macro to work properly.
*
* If a field has been set on the context but never read internally, <foo>_valid will be false
* despite the context containing a meaningful cached value.
*/
typedef struct H5CX_t {
/* DXPL */
Expand Down
3 changes: 0 additions & 3 deletions src/H5Dint.c
Original file line number Diff line number Diff line change
Expand Up @@ -1494,9 +1494,6 @@ H5D_open(const H5G_loc_t *loc, hid_t dapl_id)

/* Check if dataset was already open */
if (NULL == (shared_fo = (H5D_shared_t *)H5FO_opened(dataset->oloc.file, dataset->oloc.addr))) {
/* Clear any errors from H5FO_opened() */
H5E_clear_stack();

/* Open the dataset object */
if (H5D__open_oid(dataset, dapl_id) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_NOTFOUND, NULL, "not found");
Expand Down
Loading

0 comments on commit f71fab3

Please sign in to comment.