diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2012-10-15 23:26:20 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2012-10-15 23:26:20 (GMT) |
commit | 0725d04506a4534b368c9ac1289bb7e7d3e2d798 (patch) | |
tree | 83f161c7cc6a19875929edafdfb46864ecb4cc74 /src | |
parent | ad18b90759cb739c0a12d25b53114fa59cc510de (diff) | |
download | hdf5-0725d04506a4534b368c9ac1289bb7e7d3e2d798.zip hdf5-0725d04506a4534b368c9ac1289bb7e7d3e2d798.tar.gz hdf5-0725d04506a4534b368c9ac1289bb7e7d3e2d798.tar.bz2 |
[svn-r22900] Purpose:
Create/destroy flush dependency between the fractal
heap header and the 'huge' v2 B-tree.
Tested on:
jam (still has flush refresh test error)
Diffstat (limited to 'src')
-rw-r--r-- | src/H5HFhuge.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/H5HFhuge.c b/src/H5HFhuge.c index 786c850..1fe1468 100644 --- a/src/H5HFhuge.c +++ b/src/H5HFhuge.c @@ -164,6 +164,9 @@ H5HF_huge_bt2_create(H5HF_hdr_t *hdr, hid_t dxpl_id) if(H5B2_get_addr(hdr->huge_bt2, &hdr->huge_bt2_addr) < 0) HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, FAIL, "can't get v2 B-tree address for tracking 'huge' heap objects") + /* Create a flush dependency between the 'huge' v2 B-tree and the fractal heap */ + if(hdr->swmr_write && H5B2_depend((H5AC_info_t *)hdr, hdr->huge_bt2) < 0) + HGOTO_ERROR(H5E_HEAP, H5E_CANTDEPEND, FAIL, "can't create flush dependency between fractal heap and 'huge' v2 B-tree") done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5HF_huge_bt2_create() */ @@ -1034,6 +1037,10 @@ H5HF_huge_term(H5HF_hdr_t *hdr, hid_t dxpl_id) if(H5F_addr_defined(hdr->huge_bt2_addr) && hdr->huge_nobjs == 0) { /* Sanity check */ HDassert(hdr->huge_size == 0); + + /* Destroy the flush dependency between the 'huge' v2 B-tree and the fractal heap */ + if(hdr->swmr_write && H5B2_undepend((H5AC_info_t *)hdr, hdr->huge_bt2) < 0) + HGOTO_ERROR(H5E_HEAP, H5E_CANTUNDEPEND, FAIL, "can't destroy flush dependency between fractal heap and 'huge' v2 B-tree") /* Delete the v2 B-tree */ /* (any v2 B-tree class will work here) */ |