Page tree

The license could not be verified: License Certificate has expired!

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »









Sets free-list size limits


H5_SET_FREE_LIST_LIMITS(reg_global_lim, reg_list_lim, arr_global_lim, arr_list_lim, blk_global_lim, blk_list_lim)


herr_t H5set_free_list_limits
    int reg_global_lim,
    int reg_list_lim,
    int arr_global_lim,
    int arr_list_lim,
    int blk_global_lim,
    int blk_list_lim

int reg_global_lim    IN: The cumulative limit, in bytes, on memory used for all regular free lists
(Default: 1MB)
int reg_list_limIN: The limit, in bytes, on memory used for each regular free list
(Default: 64KB)
int arr_global_limIN: The cumulative limit, in bytes, on memory used for all array free lists
(Default: 4MB)
int arr_list_limIN: The limit, in bytes, on memory used for each array free list
(Default: 256KB)
int blk_global_limIN: The cumulative limit, in bytes, on memory used for all block free lists and, separately, for all factory free lists
(Default: 16MB)
int blk_list_limIN: The limit, in bytes, on memory used for each block or factory free list
(Default: 1MB)


H5_SET_FREE_LIST_LIMITS sets size limits on all types of free lists. The HDF5 library uses free lists internally to manage memory. The types of free lists used are as follows:

  • Regular free lists manage memory for single internal data structures.
  • Array free lists manage memory for arrays of internal data structures.
  • Block free lists manage memory for arbitrarily-sized blocks of bytes.
  • Factory free lists manage memory for fixed-size blocks of bytes.

The parameters specify global and per-list limits; for example, reg_global_limit and reg_list_limit limit the accumulated size of all regular free lists and the size of each individual regular free list, respectively. Therefore, if an application sets a 1Mb limit on each of the global lists, up to 4Mb of total storage might be allocated, 1Mb for each of the regular, array, block, and factory type lists.

The settings specified for block free lists are duplicated for factory free lists. Therefore, increasing the global limit on block free lists by x bytes will increase the potential free list memory usage by 2x bytes.

Using a value of -1 for a limit means that no limit is set for the specified type of free list.


Returns a non-negative value if successful; otherwise returns a negative value.


Coming soon!

Release    C
1.6.0Function introduced in this release.
1.8.3Function changed in this release to set factory free list memory limits.

--- Last Modified: April 10, 2018 | 01:48 PM