mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-05 15:42:32 +08:00
[svn-r16606] Description:
Add H5AC_create_flush_dependency() and H5AC_destroy_flush_dependency() wrappers for similarly named routines in H5C layer. Tested on: FreeBSD/32 6.3 (duty) Too minor to require h5committest
This commit is contained in:
parent
667b34c713
commit
fdedcd9ceb
105
src/H5AC.c
105
src/H5AC.c
@ -1824,6 +1824,59 @@ done:
|
||||
|
||||
} /* H5AC_pin_protected_entry() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5AC_create_flush_dependency()
|
||||
*
|
||||
* Purpose: Create a flush dependency between two entries in the metadata
|
||||
* cache.
|
||||
*
|
||||
* Return: Non-negative on success/Negative on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol
|
||||
* 3/24/09
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5AC_create_flush_dependency(H5F_t * f, void * parent_thing, void * child_thing)
|
||||
{
|
||||
H5C_t *cache_ptr = f->shared->cache;
|
||||
#if H5AC__TRACE_FILE_ENABLED
|
||||
char trace[128] = "";
|
||||
FILE * trace_file_ptr = NULL;
|
||||
#endif /* H5AC__TRACE_FILE_ENABLED */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(H5AC_create_flush_dependency, FAIL)
|
||||
|
||||
/* Sanity check */
|
||||
HDassert(cache_ptr);
|
||||
HDassert(parent_thing);
|
||||
HDassert(child_thing);
|
||||
|
||||
#if H5AC__TRACE_FILE_ENABLED
|
||||
if ( ( H5C_get_trace_file_ptr(f->shared->cache, &trace_file_ptr) >= 0 ) &&
|
||||
( trace_file_ptr != NULL ) ) {
|
||||
sprintf(trace, "%s %lx %lx",
|
||||
FUNC,
|
||||
(unsigned long)(((H5C_cache_entry_t *)parent_thing)->addr),
|
||||
(unsigned long)(((H5C_cache_entry_t *)child_thing)->addr));
|
||||
} /* end if */
|
||||
#endif /* H5AC__TRACE_FILE_ENABLED */
|
||||
|
||||
if(H5C_create_flush_dependency(cache_ptr, parent_thing, child_thing) < 0)
|
||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTDEPEND, FAIL, "H5C_create_flush_dependency() failed.")
|
||||
|
||||
done:
|
||||
#if H5AC__TRACE_FILE_ENABLED
|
||||
if(trace_file_ptr != NULL)
|
||||
HDfprintf(trace_file_ptr, "%s %d\n", trace, (int)ret_value);
|
||||
#endif /* H5AC__TRACE_FILE_ENABLED */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* H5AC_create_flush_dependency() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5AC_protect
|
||||
@ -2188,6 +2241,58 @@ done:
|
||||
|
||||
} /* H5AC_unpin_entry() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5AC_destroy_flush_dependency()
|
||||
*
|
||||
* Purpose: Destroy a flush dependency between two entries.
|
||||
*
|
||||
* Return: Non-negative on success/Negative on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol
|
||||
* 3/24/09
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5AC_destroy_flush_dependency(H5F_t * f, void * parent_thing, void * child_thing)
|
||||
{
|
||||
H5C_t *cache_ptr = f->shared->cache;
|
||||
#if H5AC__TRACE_FILE_ENABLED
|
||||
char trace[128] = "";
|
||||
FILE * trace_file_ptr = NULL;
|
||||
#endif /* H5AC__TRACE_FILE_ENABLED */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(H5AC_destroy_flush_dependency, FAIL)
|
||||
|
||||
/* Sanity check */
|
||||
HDassert(cache_ptr);
|
||||
HDassert(parent_thing);
|
||||
HDassert(child_thing);
|
||||
|
||||
#if H5AC__TRACE_FILE_ENABLED
|
||||
if ( ( H5C_get_trace_file_ptr(f->shared->cache, &trace_file_ptr) >= 0 ) &&
|
||||
( trace_file_ptr != NULL ) ) {
|
||||
sprintf(trace, "%s %lx",
|
||||
FUNC,
|
||||
(unsigned long)(((H5C_cache_entry_t *)parent_thing)->addr),
|
||||
(unsigned long)(((H5C_cache_entry_t *)child_thing)->addr));
|
||||
} /* end if */
|
||||
#endif /* H5AC__TRACE_FILE_ENABLED */
|
||||
|
||||
if(H5C_destroy_flush_dependency(cache_ptr, parent_thing, child_thing) < 0)
|
||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTUNDEPEND, FAIL, "H5C_destroy_flush_dependency() failed.")
|
||||
|
||||
done:
|
||||
#if H5AC__TRACE_FILE_ENABLED
|
||||
if( trace_file_ptr != NULL )
|
||||
HDfprintf(trace_file_ptr, "%s %d\n", trace, (int)ret_value);
|
||||
#endif /* H5AC__TRACE_FILE_ENABLED */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* H5AC_destroy_flush_dependency() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5AC_unprotect
|
||||
|
@ -277,6 +277,8 @@ H5_DLL herr_t H5AC_get_entry_status(H5F_t * f, haddr_t addr,
|
||||
H5_DLL herr_t H5AC_set(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type,
|
||||
haddr_t addr, void *thing, unsigned int flags);
|
||||
H5_DLL herr_t H5AC_pin_protected_entry(H5F_t * f, void * thing);
|
||||
H5_DLL herr_t H5AC_create_flush_dependency(H5F_t *f, void *parent_thing,
|
||||
void *child_thing);
|
||||
H5_DLL void * H5AC_protect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type,
|
||||
haddr_t addr, const void *udata1, void *udata2,
|
||||
H5AC_protect_t rw);
|
||||
@ -285,6 +287,8 @@ H5_DLL herr_t H5AC_resize_pinned_entry(H5F_t * f,
|
||||
size_t new_size);
|
||||
H5_DLL herr_t H5AC_unpin_entry(H5F_t * f,
|
||||
void * thing);
|
||||
H5_DLL herr_t H5AC_destroy_flush_dependency(H5F_t *f, void *parent_thing,
|
||||
void *child_thing);
|
||||
H5_DLL herr_t H5AC_unprotect(H5F_t *f, hid_t dxpl_id,
|
||||
const H5AC_class_t *type, haddr_t addr,
|
||||
void *thing, unsigned flags);
|
||||
|
Loading…
Reference in New Issue
Block a user