1 #include "lfds610_freelist_internal.h"
7 /****************************************************************************/
8 void lfds610_freelist_delete( struct lfds610_freelist_state *fs, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )
10 struct lfds610_freelist_element
17 // TRD : user_data_delete_function can be NULL
18 // TRD : user_state can be NULL
20 // TRD : leading load barrier not required as it will be performed by the pop
22 while( lfds610_freelist_pop(fs, &fe) )
24 if( user_data_delete_function != NULL )
26 lfds610_freelist_get_user_data_from_element( fe, &user_data );
27 user_data_delete_function( user_data, user_state );
30 lfds610_liblfds_aligned_free( fe );
33 lfds610_liblfds_aligned_free( fs );