summaryrefslogtreecommitdiffstats
path: root/src/H5FL.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2002-05-28 18:17:12 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2002-05-28 18:17:12 (GMT)
commitca912c389e4e641cfbae6facced950ad05578d65 (patch)
tree6bd8604f6a587ee07013ad40daa3c0c7f4b31c26 /src/H5FL.c
parent893cf5899c2b724aa438b66a275967b1f5ad0342 (diff)
downloadhdf5-ca912c389e4e641cfbae6facced950ad05578d65.zip
hdf5-ca912c389e4e641cfbae6facced950ad05578d65.tar.gz
hdf5-ca912c389e4e641cfbae6facced950ad05578d65.tar.bz2
[svn-r5467] Purpose:
Code cleanup. Description: Took Robb's recent ideas for improving the FUNC_ENTER/FUNC_LEAVE macros equivalents in the SAF library and adapted them to our library. I added an additional macro which is equivalent to FUNC_ENTER: FUNC_ENTER_NOINIT - Has the API tracing code, etc. from FUNC_ENTER but none of the library or interface initialization code. This is to be used _only_ for static functions and those which explicitly cannot have the library or interface initialization code enabled (like the API termination routines, etc.). This allowed many more of the functions in the library [but not all yet :-(] to be wrapped with FUNC_ENTER[_NOINIT]/FUNC_LEAVE pairs. It also reduced the size of the library and executables (by cutting out a bunch of code which was never executed), I'll e-mail the exact results when I've finished editing it. Platforms tested: IRIX64 6.5 (modi4)
Diffstat (limited to 'src/H5FL.c')
-rw-r--r--src/H5FL.c54
1 files changed, 31 insertions, 23 deletions
diff --git a/src/H5FL.c b/src/H5FL.c
index e0612eb..5b5281b 100644
--- a/src/H5FL.c
+++ b/src/H5FL.c
@@ -166,7 +166,7 @@ H5FL_reg_init(H5FL_reg_head_t *head)
H5FL_reg_gc_node_t *new_node; /* Pointer to the node for the new list to garbage collect */
herr_t ret_value=SUCCEED; /* return value*/
- FUNC_ENTER (H5FL_reg_init, FAIL);
+ FUNC_ENTER_NOINIT(H5FL_reg_init);
/* Allocate a new garbage collection node */
if (NULL==(new_node = H5MM_malloc(sizeof(H5FL_reg_gc_node_t))))
@@ -349,7 +349,7 @@ H5FL_reg_gc_list(H5FL_reg_head_t *head)
void *tmp; /* Temporary node pointer */
size_t total_mem; /* Total memory used on list */
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_reg_gc_list);
/* Calculate the total memory used on this list */
total_mem=head->onlist*head->size;
@@ -380,7 +380,7 @@ H5FL_reg_gc_list(H5FL_reg_head_t *head)
/* Decrement global count of free memory on "regular" lists */
H5FL_reg_gc_head.mem_freed-=total_mem;
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_reg_gc_list() */
@@ -406,7 +406,7 @@ H5FL_reg_gc(void)
{
H5FL_reg_gc_node_t *gc_node; /* Pointer into the list of things to garbage collect */
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_reg_gc);
/* Walk through all the free lists, free()'ing the nodes */
gc_node=H5FL_reg_gc_head.first;
@@ -421,7 +421,7 @@ H5FL_reg_gc(void)
/* Double check that all the memory on the free lists is recycled */
assert(H5FL_reg_gc_head.mem_freed==0);
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_reg_gc() */
@@ -456,6 +456,8 @@ H5FL_reg_term(void)
H5FL_reg_gc_node_t *left; /* pointer to garbage collection lists with work left */
H5FL_reg_gc_node_t *tmp; /* Temporary pointer to a garbage collection node */
+ FUNC_ENTER_NOINIT(H5FL_reg_term);
+
if (interface_initialize_g) {
/* Free the nodes on the garbage collection list, keeping nodes with allocations outstanding */
left=NULL;
@@ -491,7 +493,7 @@ H5FL_reg_term(void)
/* Terminating this layer never affects other layers; rather, other layers affect
* the termination of this layer. */
- return(0);
+ FUNC_LEAVE(0);
} /* end H5FL_reg_term() */
@@ -520,7 +522,7 @@ H5FL_blk_find_list(H5FL_blk_node_t **head, size_t size)
H5FL_blk_node_t *temp; /* Temp. pointer to node in the native list */
H5FL_blk_node_t *ret_value=NULL;
- FUNC_ENTER(H5FL_blk_find_list, NULL);
+ FUNC_ENTER_NOINIT(H5FL_blk_find_list);
/* Find the correct free list */
temp=*head;
@@ -574,7 +576,7 @@ H5FL_blk_create_list(H5FL_blk_node_t **head, size_t size)
H5FL_blk_node_t *temp; /* Temp. pointer to node in the list */
H5FL_blk_node_t *ret_value=NULL;
- FUNC_ENTER(H5FL_blk_create_list, NULL);
+ FUNC_ENTER_NOINIT(H5FL_blk_create_list);
/* Allocate room for the new free list node */
if(NULL==(temp=H5FL_ALLOC(H5FL_blk_node_t,0)))
@@ -625,7 +627,7 @@ H5FL_blk_init(H5FL_blk_head_t *head)
H5FL_blk_gc_node_t *new_node; /* Pointer to the node for the new list to garbage collect */
herr_t ret_value=SUCCEED; /* return value*/
- FUNC_ENTER (H5FL_blk_init, FAIL);
+ FUNC_ENTER_NOINIT(H5FL_blk_init);
/* Allocate a new garbage collection node */
if (NULL==(new_node = H5MM_malloc(sizeof(H5FL_blk_gc_node_t))))
@@ -887,7 +889,7 @@ H5FL_blk_gc_list(H5FL_blk_head_t *head)
void *next; /* Temp. ptr to the free list list node */
void *temp; /* Temp. ptr to the free list page node */
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_blk_gc_list);
/* Loop through all the nodes in the block free list queue */
while(head->head!=NULL) {
@@ -925,7 +927,7 @@ H5FL_blk_gc_list(H5FL_blk_head_t *head)
/* Double check that all the memory on this list is recycled */
assert(head->list_mem==0);
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_blk_gc_list() */
@@ -949,7 +951,7 @@ H5FL_blk_gc(void)
{
H5FL_blk_gc_node_t *gc_node; /* Pointer into the list of things to garbage collect */
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_blk_gc);
/* Walk through all the free lists, free()'ing the nodes */
gc_node=H5FL_blk_gc_head.first;
@@ -964,7 +966,7 @@ H5FL_blk_gc(void)
/* Double check that all the memory on the free lists are recycled */
assert(H5FL_blk_gc_head.mem_freed==0);
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_blk_gc() */
@@ -992,6 +994,8 @@ H5FL_blk_term(void)
{
H5FL_blk_gc_node_t *left; /* pointer to garbage collection lists with work left */
H5FL_blk_gc_node_t *tmp; /* Temporary pointer to a garbage collection node */
+
+ FUNC_ENTER_NOINIT(H5FL_blk_term);
/* Free the nodes on the garbage collection list, keeping nodes with allocations outstanding */
left=NULL;
@@ -1023,7 +1027,7 @@ printf("H5FL_blk_term: head->name=%s, head->allocated=%d\n", H5FL_blk_gc_head.fi
/* Point to the list of nodes left with allocations open, if any */
H5FL_blk_gc_head.first=left;
- return (H5FL_blk_gc_head.first!=NULL ? 1 : 0);
+ FUNC_LEAVE (H5FL_blk_gc_head.first!=NULL ? 1 : 0);
} /* end H5FL_blk_term() */
@@ -1049,7 +1053,7 @@ H5FL_arr_init(H5FL_arr_head_t *head)
H5FL_gc_arr_node_t *new_node; /* Pointer to the node for the new list to garbage collect */
herr_t ret_value=SUCCEED; /* return value*/
- FUNC_ENTER (H5FL_arr_init, FAIL);
+ FUNC_ENTER_NOINIT(H5FL_arr_init);
/* Allocate a new garbage collection node */
if (NULL==(new_node = H5MM_malloc(sizeof(H5FL_gc_arr_node_t))))
@@ -1351,7 +1355,7 @@ H5FL_arr_gc_list(H5FL_arr_head_t *head)
int i; /* Counter for array of free lists */
size_t total_mem; /* Total memory used on list */
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_arr_gc_list);
/* Check if the array has a fixed maximum number of elements */
if(head->maxelem>0) {
@@ -1395,7 +1399,7 @@ H5FL_arr_gc_list(H5FL_arr_head_t *head)
H5FL_blk_gc_list(&(head->u.queue));
} /* end else */
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_arr_gc_list() */
@@ -1419,7 +1423,7 @@ H5FL_arr_gc(void)
{
H5FL_gc_arr_node_t *gc_arr_node; /* Pointer into the list of things to garbage collect */
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_arr_gc);
/* Walk through all the free lists, free()'ing the nodes */
gc_arr_node=H5FL_arr_gc_head.first;
@@ -1434,7 +1438,7 @@ H5FL_arr_gc(void)
/* Double check that all the memory on the free lists are recycled */
assert(H5FL_arr_gc_head.mem_freed==0);
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_arr_gc() */
@@ -1463,6 +1467,8 @@ H5FL_arr_term(void)
H5FL_gc_arr_node_t *left; /* pointer to garbage collection lists with work left */
H5FL_gc_arr_node_t *tmp; /* Temporary pointer to a garbage collection node */
+ FUNC_ENTER_NOINIT(H5FL_arr_term);
+
/* Free the nodes on the garbage collection list, keeping nodes with allocations outstanding */
left=NULL;
while(H5FL_arr_gc_head.first!=NULL) {
@@ -1521,7 +1527,7 @@ printf("H5FL_arr_term: head->name=%s, head->allocated=%d\n", H5FL_arr_gc_head.fi
/* Point to the list of nodes left with allocations open, if any */
H5FL_arr_gc_head.first=left;
- return (H5FL_arr_gc_head.first!=NULL ? 1 : 0);
+ FUNC_LEAVE (H5FL_arr_gc_head.first!=NULL ? 1 : 0);
} /* end H5FL_arr_term() */
@@ -1543,7 +1549,7 @@ printf("H5FL_arr_term: head->name=%s, head->allocated=%d\n", H5FL_arr_gc_head.fi
herr_t
H5FL_garbage_coll(void)
{
- /* FUNC_ENTER_INIT() should not be called, it causes an infinite loop at library termination */
+ FUNC_ENTER_NOINIT(H5FL_garbage_coll);
/* Garbage collect the free lists for array objects */
H5FL_arr_gc();
@@ -1554,7 +1560,7 @@ H5FL_garbage_coll(void)
/* Garbage collect the free lists for regular objects */
H5FL_reg_gc();
- return(SUCCEED);
+ FUNC_LEAVE(SUCCEED);
} /* end H5FL_garbage_coll() */
@@ -1637,11 +1643,13 @@ H5FL_term_interface(void)
{
int ret_value=0;
+ FUNC_ENTER_NOINIT(H5FL_term_interface);
+
/* Garbage collect any nodes on the free lists */
H5FL_garbage_coll();
ret_value=H5FL_reg_term()+H5FL_arr_term()+H5FL_blk_term();
- return(ret_value);
+ FUNC_LEAVE(ret_value);
}