diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2013-04-03 15:47:33 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2013-04-03 15:47:33 (GMT) |
commit | 7856dacd1cd1b3ddaba1aceb0b23149d29c03f46 (patch) | |
tree | e29a3d98bc074d511bfa2e4c8f76fdbefd834f7c /src/H5F.c | |
parent | eccf5307099a419ac73d26ab31c4ed2ac6a26a5b (diff) | |
download | hdf5-7856dacd1cd1b3ddaba1aceb0b23149d29c03f46.zip hdf5-7856dacd1cd1b3ddaba1aceb0b23149d29c03f46.tar.gz hdf5-7856dacd1cd1b3ddaba1aceb0b23149d29c03f46.tar.bz2 |
[svn-r23531] add the FF async API version of all other file/group/dataset API routines that were done synchronously in the last deliverable.
Diffstat (limited to 'src/H5F.c')
-rw-r--r-- | src/H5F.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -699,6 +699,7 @@ done: herr_t H5Fclose(hid_t file_id) { + H5VL_t *vol_plugin = NULL; herr_t ret_value = SUCCEED; FUNC_ENTER_API(FAIL) @@ -708,6 +709,13 @@ H5Fclose(hid_t file_id) if(H5I_FILE != H5I_get_type(file_id)) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file ID") + /* get the plugin pointer */ + if (NULL == (vol_plugin = (H5VL_t *)H5I_get_aux(file_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "ID does not contain VOL information"); + /* set the event queue and dxpl IDs to be passed on to the VOL layer */ + vol_plugin->close_eq_id = H5_EVENT_QUEUE_NULL; + vol_plugin->close_dxpl_id = H5AC_dxpl_id; + /* Decrement reference count on atom. When it reaches zero the file will be closed. */ if(H5I_dec_app_ref(file_id) < 0) HGOTO_ERROR(H5E_ATOM, H5E_CANTCLOSEFILE, FAIL, "decrementing file ID failed") @@ -757,7 +765,8 @@ H5F_close_file(void *file, H5VL_t *vol_plugin) FUNC_ENTER_NOAPI_NOINIT /* Close the file through the VOL*/ - if((ret_value = H5VL_file_close(file, vol_plugin, H5AC_dxpl_id, H5_EVENT_QUEUE_NULL)) < 0) + if((ret_value = H5VL_file_close(file, vol_plugin, vol_plugin->close_dxpl_id, + vol_plugin->close_eq_id)) < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTCLOSEFILE, FAIL, "unable to close file") done: FUNC_LEAVE_NOAPI(ret_value) |