diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2017-01-06 19:37:17 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2017-01-06 19:37:17 (GMT) |
commit | 8d4c84eae2954a77c725f42298b20d694a6150c8 (patch) | |
tree | 138e63bc39ef9c0c818ec0558d1f5d92e02665a7 /src/H5Cprivate.h | |
parent | 7568dcaf151bfaa7d529ec69c57a814682bf69c1 (diff) | |
download | hdf5-8d4c84eae2954a77c725f42298b20d694a6150c8.zip hdf5-8d4c84eae2954a77c725f42298b20d694a6150c8.tar.gz hdf5-8d4c84eae2954a77c725f42298b20d694a6150c8.tar.bz2 |
Bring changes to metadata cache "get entry status" call and new
"child serialized / unserialized" messages and support from the cache image
branch.
Diffstat (limited to 'src/H5Cprivate.h')
-rw-r--r-- | src/H5Cprivate.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/H5Cprivate.h b/src/H5Cprivate.h index 9d8f0d4..654ce35 100644 --- a/src/H5Cprivate.h +++ b/src/H5Cprivate.h @@ -867,7 +867,9 @@ typedef enum H5C_notify_action_t { H5C_NOTIFY_ACTION_ENTRY_DIRTIED, /* Entry has been marked dirty. */ H5C_NOTIFY_ACTION_ENTRY_CLEANED, /* Entry has been marked clean. */ H5C_NOTIFY_ACTION_CHILD_DIRTIED, /* Dependent child has been marked dirty. */ - H5C_NOTIFY_ACTION_CHILD_CLEANED /* Dependent child has been marked clean. */ + H5C_NOTIFY_ACTION_CHILD_CLEANED, /* Dependent child has been marked clean. */ + H5C_NOTIFY_ACTION_CHILD_UNSERIALIZED, /* Dependent child has been marked unserialized. */ + H5C_NOTIFY_ACTION_CHILD_SERIALIZED /* Dependent child has been marked serialized. */ } H5C_notify_action_t; /* Cache client callback function pointers */ @@ -1214,6 +1216,19 @@ typedef int H5C_ring_t; * either dirty or have a nonzero flush_dep_ndirty_children. If * this field is nonzero, then this entry cannot be flushed. * + * flush_dep_nunser_children: Number of flush dependency children + * that are either unserialized, or have a non-zero number of + * positive number of unserialized children. + * + * Note that since there is no requirement that a clean entry + * be serialized, it is possible that flush_dep_nunser_children + * to be greater than flush_dep_ndirty_children. + * + * This field exist to facilitate correct ordering of entry + * serializations when it is necessary to serialize all the + * entries in the metadata cache. Thus in the cache + * serialization, no entry can be serialized unless this + * field contains 0. * * Fields supporting the hash table: * @@ -1398,6 +1413,7 @@ typedef struct H5C_cache_entry_t { unsigned flush_dep_parent_nalloc; unsigned flush_dep_nchildren; unsigned flush_dep_ndirty_children; + unsigned flush_dep_nunser_children; hbool_t pinned_from_client; hbool_t pinned_from_cache; @@ -1771,6 +1787,8 @@ H5_DLL herr_t H5C_insert_entry(H5F_t *f, hid_t dxpl_id, const H5C_class_t *type, haddr_t addr, void *thing, unsigned int flags); H5_DLL herr_t H5C_mark_entry_dirty(void *thing); H5_DLL herr_t H5C_mark_entry_clean(void *thing); +H5_DLL herr_t H5C_mark_entry_unserialized(void *thing); +H5_DLL herr_t H5C_mark_entry_serialized(void *thing); H5_DLL herr_t H5C_move_entry(H5C_t *cache_ptr, const H5C_class_t *type, haddr_t old_addr, haddr_t new_addr); H5_DLL herr_t H5C_pin_protected_entry(void *thing); |