![]() |
Helixis 1.0
Task Programming API
|
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 */