]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/liblfds710/src/lfds710_list_addonly_singlylinked_unordered/lfds710_list_addonly_singlylinked_unordered_cleanup.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / liblfds710 / src / lfds710_list_addonly_singlylinked_unordered / lfds710_list_addonly_singlylinked_unordered_cleanup.c
1 /***** includes *****/
2 #include "lfds710_list_addonly_singlylinked_unordered_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 void lfds710_list_asu_cleanup( struct lfds710_list_asu_state *lasus,
10                                void (*element_cleanup_callback)(struct lfds710_list_asu_state *lasus, struct lfds710_list_asu_element *lasue) )
11 {
12   struct lfds710_list_asu_element
13     *lasue,
14     *temp;
15
16   LFDS710_PAL_ASSERT( lasus != NULL );
17   // TRD : element_cleanup_callback can be NULL
18
19   LFDS710_MISC_BARRIER_LOAD;
20
21   if( element_cleanup_callback == NULL )
22     return;
23
24   lasue = LFDS710_LIST_ASU_GET_START( *lasus );
25
26   while( lasue != NULL )
27   {
28     temp = lasue;
29
30     lasue = LFDS710_LIST_ASU_GET_NEXT( *lasue );
31
32     element_cleanup_callback( lasus, temp );
33   }
34
35   return;
36 }
37