diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2015-12-03 20:01:54 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2015-12-03 20:01:54 (GMT) |
commit | 6a7920147483a195aef6444b55450edac4e4f9d5 (patch) | |
tree | 063e201e1503a643030bd6eeec6c13c5105a2cbe | |
parent | cb79a1fd86b2a78f1c7e82e81ffd01ce7d999799 (diff) | |
download | hdf5-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.c | 17 | ||||
-rw-r--r-- | src/H5EA.c | 5 | ||||
-rw-r--r-- | src/H5EAcache.c | 17 | ||||
-rw-r--r-- | src/H5EApkg.h | 8 |
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") @@ -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; |