mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
changed H5Pset_fclose_degree to H5F_CLOSE_WEAK
It seems like it is part of the design of HDF5 virtual datasets that objects within a file remain opened while the files is aready "closed". Setting the fclose degree to SEMI would cause the library to bail out. This commit makes nc_test4/tst_virtual_dataset succeed. See also Unidata/netcdf-c#1799
This commit is contained in:
parent
4c27730ae3
commit
9f8897762d
@ -756,12 +756,13 @@ nc4_open_file(const char *path, int mode, void* parameters, int ncid)
|
|||||||
#endif /* !USE_PARALLEL4 */
|
#endif /* !USE_PARALLEL4 */
|
||||||
|
|
||||||
/* Need this access plist to control how HDF5 handles open objects
|
/* Need this access plist to control how HDF5 handles open objects
|
||||||
* on file close. (Setting H5F_CLOSE_SEMI will cause H5Fclose to
|
* on file close. (Setting H5F_CLOSE_WEAK will cause H5Fclose not to
|
||||||
* fail if there are any open objects in the file). */
|
* fail if there are any open objects in the file. This may happen when virtual
|
||||||
|
* datasets are opened). */
|
||||||
if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||||
BAIL(NC_EHDFERR);
|
BAIL(NC_EHDFERR);
|
||||||
|
|
||||||
if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_SEMI) < 0)
|
if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_WEAK) < 0)
|
||||||
BAIL(NC_EHDFERR);
|
BAIL(NC_EHDFERR);
|
||||||
|
|
||||||
#ifdef USE_PARALLEL4
|
#ifdef USE_PARALLEL4
|
||||||
|
Loading…
Reference in New Issue
Block a user