Last modified: 6 May 2010
Name: H5set_free_list_limits
Signature:
  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` )

Purpose:
  Sets free-list size limits.

Description:
  `H5set_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.

Parameters:

int `reg_global_lim` | IN: The cumulative limit, in bytes, on memory used for all regular free lists (Default: 1MB)
int `reg_list_lim` | IN: The limit, in bytes, on memory used for each regular free list (Default: 64KB)
int `arr_global_lim` | IN: The cumulative limit, in bytes, on memory used for all array free lists (Default: 4MB)
int `arr_list_lim` | IN: The limit, in bytes, on memory used for each array free list (Default: 256KB)
int `blk_global_lim` | IN: 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_lim` | IN: The limit, in bytes, on memory used for each block or factory free list (Default: 1MB)

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

Fortran90 Interface:
  None.

History:

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