]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/liblfds710/src/lfds710_stack/lfds710_stack_cleanup.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / liblfds710 / src / lfds710_stack / lfds710_stack_cleanup.c
1 /***** includes *****/
2 #include "lfds710_stack_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 void lfds710_stack_cleanup( struct lfds710_stack_state *ss,
10                             void (*element_cleanup_callback)(struct lfds710_stack_state *ss, struct lfds710_stack_element *se) )
11 {
12   struct lfds710_stack_element
13     *se,
14     *se_temp;
15
16   LFDS710_PAL_ASSERT( ss != NULL );
17   // TRD : element_cleanup_callback can be NULL
18
19   LFDS710_MISC_BARRIER_LOAD;
20
21   if( element_cleanup_callback != NULL )
22   {
23     se = ss->top[POINTER];
24
25     while( se != NULL )
26     {
27       se_temp = se;
28       se = se->next;
29
30       element_cleanup_callback( ss, se_temp );
31     }
32   }
33
34   return;
35 }
36