summaryrefslogtreecommitdiffstats
path: root/src/H5ACpkg.h
diff options
context:
space:
mode:
authorJohn Mainzer <mainzer@hdfgroup.org>2006-05-24 07:36:28 (GMT)
committerJohn Mainzer <mainzer@hdfgroup.org>2006-05-24 07:36:28 (GMT)
commita415cc6b17269c893704b3410a764b1c5d3d812e (patch)
tree36c29aba9c7b776bec0a65999d796d389bec9090 /src/H5ACpkg.h
parent5f4234fabfe2ee0c07d74776d36352a8daf49e31 (diff)
downloadhdf5-a415cc6b17269c893704b3410a764b1c5d3d812e.zip
hdf5-a415cc6b17269c893704b3410a764b1c5d3d812e.tar.gz
hdf5-a415cc6b17269c893704b3410a764b1c5d3d812e.tar.bz2
[svn-r12374] Purpose:
1) Check in potential fix to unreproduceable bug in t_cache observed on Cobalt 2) Check in code supporting added pinned entry features in the metadata cache. Description: 1) Elena encountered a bug in t_cache when running on Cobalt. On investigation I found a potential race condition in t_cache that could explain her observation. 2) Quincey requested additions to the metadata cache allowing renaming of pinned entryies, and marking of pinned or protected entries as dirty. Solution: 1) Modified t_cache.c to prevent the potential race condition. Elena was unable to reproduce the bug on Cobalt, so we don't know if my fix actually addressed the problem. 2) Added code supporting the requested functions. The changes were relatively trivial, but required substantial new test code. Platforms tested: h5committest, serial test on heping, parallel test on phoenix. Misc. update:
Diffstat (limited to 'src/H5ACpkg.h')
-rw-r--r--src/H5ACpkg.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/H5ACpkg.h b/src/H5ACpkg.h
index 903eca3..e31f245 100644
--- a/src/H5ACpkg.h
+++ b/src/H5ACpkg.h
@@ -263,6 +263,18 @@
* contain the value 0 on all processes other than process 0.
* It exists primarily for sanity checking.
*
+ * write_done: In the parallel test bed, it is necessary to ensure that
+ * all writes to the server process from cache 0 complete
+ * before it enters the barrier call with the other caches.
+ *
+ * The write_done callback allows t_cache to do this without
+ * requiring an ACK on each write. Since these ACKs greatly
+ * increase the run time on some platforms, this is a
+ * significant optimization.
+ *
+ * This field must be set to NULL when the callback is not
+ * needed.
+ *
****************************************************************************/
#ifdef H5_HAVE_PARALLEL
@@ -308,6 +320,8 @@ typedef struct H5AC_aux_t
int32_t c_slist_len;
+ void (* write_done)(void);
+
} H5AC_aux_t; /* struct H5AC_aux_t */
#endif /* H5_HAVE_PARALLEL */