Helixis 1.0
Task Programming API
sources/liblfds/freelist/freelist_delete.c
Go to the documentation of this file.
00001 #include "freelist_internal.h"
00002 
00003 #if defined(HLX_BUILD_WITH_PARALLEL_THREADING)
00004 
00005 extern hlx_api gl_api;
00006 
00007 /****************************************************************************/
00008 void freelist_delete( struct freelist_state *fs, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )
00009 {
00010   struct freelist_element
00011     *fe;
00012 
00013   void
00014     *user_data;
00015 
00016   /* TRD : user_data_delete_function can be 0 */
00017   /* TRD : user_state can be 0 */
00018 
00019   while( freelist_pop(fs, &fe) )
00020   {
00021     if( user_data_delete_function != 0 )
00022     {
00023       freelist_get_user_data_from_element( fe, &user_data );
00024       user_data_delete_function( user_data, user_state );
00025     }
00026 
00027     gl_api.aligned_free_entry( fe );
00028   }
00029 
00030   gl_api.aligned_free_entry( fs );
00031 
00032   return;
00033 }
00034 
00035 #endif /* !HLX_BUILD_WITH_PARALLEL_THREADING */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines