summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2015-12-03 20:01:54 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2015-12-03 20:01:54 (GMT)
commit6a7920147483a195aef6444b55450edac4e4f9d5 (patch)
tree063e201e1503a643030bd6eeec6c13c5105a2cbe
parentcb79a1fd86b2a78f1c7e82e81ffd01ce7d999799 (diff)
downloadhdf5-6a7920147483a195aef6444b55450edac4e4f9d5.zip
hdf5-6a7920147483a195aef6444b55450edac4e4f9d5.tar.gz
hdf5-6a7920147483a195aef6444b55450edac4e4f9d5.tar.bz2
[svn-r28507] Description:
Clean up changes to extensible array flush dependencies. Tested on: MacOSX/64 10.11.1 (amazon) w/serial & parallel (h5committest not required on this branch)
-rw-r--r--src/H5Dearray.c17
-rw-r--r--src/H5EA.c5
-rw-r--r--src/H5EAcache.c17
-rw-r--r--src/H5EApkg.h8
4 files changed, 14 insertions, 33 deletions
diff --git a/src/H5Dearray.c b/src/H5Dearray.c
index c25771b..35de599 100644
--- a/src/H5Dearray.c
+++ b/src/H5Dearray.c
@@ -1854,23 +1854,6 @@ H5D__earray_idx_dest(const H5D_chk_idx_info_t *idx_info)
/* Check if the extensible array is open */
if(idx_info->storage->u.earray.ea) {
- /* Check for SWMR writes to the file */
- if(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE) {
- /* Sanity check */
- HDassert(H5F_addr_defined(idx_info->storage->u.earray.dset_ohdr_addr));
-
-#if 0 /* at least in some cases, this removal of the flush dependency
- * between the extensible array header and the the object header
- * proxy results in out of order flush.
- *
- * JRM -- 11/27/11
- */
- /* Remove flush dependency between extensible array and dataset' object header */
- if(H5D__earray_idx_undepend(idx_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTUNDEPEND, FAIL, "unable to remove flush dependency on object header")
-#endif /* JRM */
- } /* end if */
-
/* Close extensible array */
if(H5EA_close(idx_info->storage->u.earray.ea, idx_info->dxpl_id) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, FAIL, "unable to close extensible array")
diff --git a/src/H5EA.c b/src/H5EA.c
index 80c4518..bf18239 100644
--- a/src/H5EA.c
+++ b/src/H5EA.c
@@ -844,8 +844,7 @@ HDfprintf(stderr, "%s: Called\n", FUNC);
* and the extensible array header has already been setup. If it hasn't
* set it up.
*/
- if ( hdr->fd_parent_addr == HADDR_UNDEF ) {
-
+ if(!H5F_addr_defined(hdr->fd_parent_addr)) {
/* Set the shared array header's file context for this operation */
hdr->f = ea->f;
@@ -857,7 +856,7 @@ HDfprintf(stderr, "%s: Called\n", FUNC);
hdr->fd_parent_addr = parent_entry->addr;
hdr->fd_parent_ptr = parent_entry;
- }
+ } /* end if */
CATCH
diff --git a/src/H5EAcache.c b/src/H5EAcache.c
index 09be865..828ce55 100644
--- a/src/H5EAcache.c
+++ b/src/H5EAcache.c
@@ -83,8 +83,7 @@ static herr_t H5EA__cache_hdr_image_len(const void *thing, size_t *image_len,
hbool_t *compressed_ptr, size_t *compressed_image_len_ptr);
static herr_t H5EA__cache_hdr_serialize(const H5F_t *f, void *image, size_t len,
void *thing);
-static herr_t H5EA__cache_hdr_notify(H5AC_notify_action_t action,
- void *_thing);
+static herr_t H5EA__cache_hdr_notify(H5AC_notify_action_t action, void *thing);
static herr_t H5EA__cache_hdr_free_icr(void *thing);
static herr_t H5EA__cache_iblock_get_load_size(const void *image, void *udata,
@@ -593,18 +592,17 @@ H5EA__cache_hdr_notify(H5AC_notify_action_t action, void *_thing))
* destroy the flush dependency before the extensible array
* header is evicted.
*/
- if ( hdr->fd_parent_addr != HADDR_UNDEF ) {
-
- HDassert(hdr->fd_parent_ptr != NULL);
+ if(hdr->fd_parent_addr != HADDR_UNDEF) {
+ HDassert(hdr->fd_parent_ptr);
HDassert(hdr->fd_parent_ptr->magic == H5C__H5C_CACHE_ENTRY_T_MAGIC);
HDassert(hdr->fd_parent_ptr->addr == hdr->fd_parent_addr);
HDassert(hdr->fd_parent_ptr->type);
HDassert(hdr->fd_parent_ptr->type->id == H5AC_OHDR_PROXY_ID);
/* Destroy flush dependency on object header proxy */
- if(H5AC_destroy_flush_dependency((void *)hdr->fd_parent_ptr, (void *)hdr) < 0)
+ if(H5EA__destroy_flush_depend((H5AC_info_t *)hdr->fd_parent_ptr, (H5AC_info_t *)hdr) < 0)
H5E_THROW(H5E_CANTUNDEPEND, "unable to destroy flush dependency between ea header and object header proxy, address = %llu", (unsigned long long)hdr->fd_parent_addr)
- }
+ } /* end if */
break;
default:
@@ -614,10 +612,11 @@ H5EA__cache_hdr_notify(H5AC_notify_action_t action, void *_thing))
HDassert(0 && "Unknown action?!?");
#endif /* NDEBUG */
} /* end switch */
- } else {
+ } /* end if */
+ else {
HDassert(hdr->fd_parent_addr == HADDR_UNDEF);
HDassert(hdr->fd_parent_ptr == NULL);
- }
+ } /* end else */
CATCH
diff --git a/src/H5EApkg.h b/src/H5EApkg.h
index 3457926..147a612 100644
--- a/src/H5EApkg.h
+++ b/src/H5EApkg.h
@@ -209,7 +209,7 @@ typedef struct H5EA_hdr_t {
void *cb_ctx; /* Callback context */
/* Flush depencency parent information (not stored) */
- haddr_t fd_parent_addr; /* Address of flush dependency parent
+ haddr_t fd_parent_addr; /* Address of flush dependency parent,
* if any. This field is initialized
* to HADDR_UNDEF. If the extensible
* array is being used to index a
@@ -228,10 +228,10 @@ typedef struct H5EA_hdr_t {
* an eviction notification from the
* metadata cache.
*/
- H5AC_info_t * fd_parent_ptr; /* pointer to flush dependency parent
- * it it exists. NULL otherwise. See
+ H5AC_info_t *fd_parent_ptr; /* Pointer to flush dependency parent,
+ * if it exists, otherwise NULL. (See
* comment for fd_parent_addr above for
- * further details.
+ * further details)
*/
} H5EA_hdr_t;