summaryrefslogtreecommitdiffstats
path: root/src/H5FDvfd_swmr.c
diff options
context:
space:
mode:
authorDavid Young <dyoung@hdfgroup.org>2020-07-10 20:09:29 (GMT)
committerDavid Young <dyoung@hdfgroup.org>2020-07-10 20:09:29 (GMT)
commit2e66b5cf86c1a184e01eea6b67b52ac82648573a (patch)
tree6cf56f85fdc4f2b433a127d1c8d4d66dc59a8e65 /src/H5FDvfd_swmr.c
parent5493f4faacd7984bf8e442786a33e49598118788 (diff)
downloadhdf5-2e66b5cf86c1a184e01eea6b67b52ac82648573a.zip
hdf5-2e66b5cf86c1a184e01eea6b67b52ac82648573a.tar.gz
hdf5-2e66b5cf86c1a184e01eea6b67b52ac82648573a.tar.bz2
Add all extant virtual files to a list. Add an "exclusive owner" (`exc_owner`)
member to all virtual files. Add a routine, H5FD_has_conflict(), that returns true if a new virtual file is identical to an existing virtual file that has an exclusive owner. Establish an exclusive owner for a VFD SWMR virtual file's lower virtual file. Rename bsdqueue.h to H5queue.h and install it, since it's used by H5FDpublic.h. This is part of a changeset that helps us avoid creating multiple H5F_shared_t for one file when virtual datasets are used with VFD SWMR. The old code for deduplicating VFD SWMR H5F_shared_t instances did not work correctly with VFD SWMR, so we'd end up with multiple H5F_shared_t all active on the same file.
Diffstat (limited to 'src/H5FDvfd_swmr.c')
-rw-r--r--src/H5FDvfd_swmr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/H5FDvfd_swmr.c b/src/H5FDvfd_swmr.c
index 72906ff..af633e3 100644
--- a/src/H5FDvfd_swmr.c
+++ b/src/H5FDvfd_swmr.c
@@ -351,6 +351,8 @@ H5FD_vfd_swmr_open(const char *name, unsigned flags, hid_t fapl_id,
maxaddr)) == NULL)
HGOTO_ERROR(H5E_VFL, H5E_CANTOPENFILE, NULL, "can't set driver info");
+ file->hdf5_file_lf->exc_owner = &file->pub;
+
/* set pb_configured to FALSE. This field should not exist, but
* until we modify the file open procedure to create the page buffer
* before there is any file I/O when opening a file VFD SWMR reader,