diff options
author | David Young <dyoung@hdfgroup.org> | 2020-07-10 20:09:29 (GMT) |
---|---|---|
committer | David Young <dyoung@hdfgroup.org> | 2020-07-10 20:09:29 (GMT) |
commit | 2e66b5cf86c1a184e01eea6b67b52ac82648573a (patch) | |
tree | 6cf56f85fdc4f2b433a127d1c8d4d66dc59a8e65 /src/H5FDpublic.h | |
parent | 5493f4faacd7984bf8e442786a33e49598118788 (diff) | |
download | hdf5-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/H5FDpublic.h')
-rw-r--r-- | src/H5FDpublic.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/H5FDpublic.h b/src/H5FDpublic.h index 61bf212..ab8a868 100644 --- a/src/H5FDpublic.h +++ b/src/H5FDpublic.h @@ -18,6 +18,7 @@ #ifndef _H5FDpublic_H #define _H5FDpublic_H +#include "H5queue.h" #include "H5public.h" #include "H5Fpublic.h" /*for H5F_close_degree_t */ @@ -319,6 +320,11 @@ typedef struct H5FD_free_t { struct H5FD_t { hid_t driver_id; /*driver ID for this file */ const H5FD_class_t *cls; /*constant class info */ + + TAILQ_ENTRY(H5FD_t) link; /* Linkage for list of all VFs. */ + H5FD_t *exc_owner; /* Pointer to an exclusive owner + * or NULL if none. + */ unsigned long fileno; /* File 'serial' number */ unsigned access_flags; /* File access flags (from create or open) */ unsigned long feature_flags; /* VFL Driver feature Flags */ |