summaryrefslogtreecommitdiffstats
path: root/src/H5.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2009-04-08 18:55:01 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2009-04-08 18:55:01 (GMT)
commit3367137ba6cd13ec48277b13bdf31006f077772d (patch)
tree970edcc5c9ffc241e12bba93b249b5dfb25952f9 /src/H5.c
parent48b127f628725a89a79dbaa95a784501383d6259 (diff)
downloadhdf5-3367137ba6cd13ec48277b13bdf31006f077772d.zip
hdf5-3367137ba6cd13ec48277b13bdf31006f077772d.tar.gz
hdf5-3367137ba6cd13ec48277b13bdf31006f077772d.tar.bz2
[svn-r16703] Purpose: Improve performance of factory free lists.
Description: Factory free lists were formerly implemented as block free lists. This was inefficient as factories can only be one size, and implementing them as blocks (which can be variable size) wasted computation and space. They have been rewritten with a separate implementation, which is simlar to regular free lists except they can be dynamically created and destroyed. Tested: jam, linew, smirom (h5committest)
Diffstat (limited to 'src/H5.c')
-rw-r--r--src/H5.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/H5.c b/src/H5.c
index 70b5660..b49db8d 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -409,6 +409,9 @@ done:
* global lists, up to 3 MB of total storage might be allocated (1MB on
* each of regular, array and block type lists).
*
+ * The settings for block free lists are duplicated to factory free lists.
+ * Factory free list limits cannot be set independently currently.
+ *
* Parameters:
* int reg_global_lim; IN: The limit on all "regular" free list memory used
* int reg_list_lim; IN: The limit on memory used in each "regular" free list
@@ -424,7 +427,9 @@ done:
* Programmer: Quincey Koziol
* Wednesday, August 2, 2000
*
- * Modifications:
+ * Modifications: Neil Fortner
+ * Wednesday, April 8, 2009
+ * Added support for factory free lists
*
*-------------------------------------------------------------------------
*/
@@ -439,7 +444,8 @@ H5set_free_list_limits(int reg_global_lim, int reg_list_lim, int arr_global_lim,
arr_list_lim, blk_global_lim, blk_list_lim);
/* Call the free list function to actually set the limits */
- if(H5FL_set_free_list_limits(reg_global_lim, reg_list_lim, arr_global_lim, arr_list_lim, blk_global_lim, blk_list_lim)<0)
+ if(H5FL_set_free_list_limits(reg_global_lim, reg_list_lim, arr_global_lim, arr_list_lim,
+ blk_global_lim, blk_list_lim, blk_global_lim, blk_list_lim)<0)
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTSET, FAIL, "can't set garbage collection limits")
done: