1 #include "lfds611_freelist_internal.h"
\r
7 /****************************************************************************/
\r
8 void lfds611_freelist_delete( struct lfds611_freelist_state *fs, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )
\r
10 struct lfds611_freelist_element
\r
16 assert( fs != NULL );
\r
17 // TRD : user_data_delete_function can be NULL
\r
18 // TRD : user_state can be NULL
\r
20 // TRD : leading load barrier not required as it will be performed by the pop
\r
22 while( lfds611_freelist_pop(fs, &fe) )
\r
24 if( user_data_delete_function != NULL )
\r
26 lfds611_freelist_get_user_data_from_element( fe, &user_data );
\r
27 user_data_delete_function( user_data, user_state );
\r
30 lfds611_liblfds_aligned_free( fe );
\r
33 lfds611_liblfds_aligned_free( fs );
\r