]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/liblfds710/src/lfds710_queue_bounded_singleproducer_singleconsumer/lfds710_queue_bounded_singleproducer_singleconsumer_cleanup.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / liblfds710 / src / lfds710_queue_bounded_singleproducer_singleconsumer / lfds710_queue_bounded_singleproducer_singleconsumer_cleanup.c
1 /***** includes *****/
2 #include "lfds710_queue_bounded_singleproducer_singleconsumer_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 void lfds710_queue_bss_cleanup( struct lfds710_queue_bss_state *qbsss,
10                                 void (*element_cleanup_callback)(struct lfds710_queue_bss_state *qbsss, void *key, void *value) )
11 {
12   lfds710_pal_uint_t
13     loop;
14
15   struct lfds710_queue_bss_element
16     *qbsse;
17
18   LFDS710_PAL_ASSERT( qbsss != NULL );
19   // TRD : element_cleanup_callback can be NULL
20
21   if( element_cleanup_callback != NULL )
22     for( loop = qbsss->read_index ; loop < qbsss->read_index + qbsss->number_elements ; loop++ )
23     {
24       qbsse = qbsss->element_array + (loop % qbsss->number_elements);
25       element_cleanup_callback( qbsss, qbsse->key, qbsse->value );
26     }
27
28   return;
29 }
30