void queue_free_all(struct queue *queue) { struct list *list = queue->head; list_free_all(list); __queue_init(queue); }
static void cleanup_device(osprd_info_t *d) { wake_up_all(&d->blockq); if (d->gd) { del_gendisk(d->gd); put_disk(d->gd); } if (d->queue) blk_cleanup_queue(d->queue); if (d->data) vfree(d->data); list_free_all(d->lock_holder_l); list_free_all(d->lock_waiter_l); d->lock_holder_l = NULL; d->lock_waiter_l = NULL; }
/** * Final cleanup. */ void G_COLD ghc_close(void) { if (ghc_connecting) { if (ghc_ctx.ha != NULL) { http_async_cancel(ghc_ctx.ha); ghc_ctx.ha = NULL; } } ghc_connecting = FALSE; list_free_all(&ghc_list, cast_to_list_destroy(ghc_free)); }
int main(int a, char **b) { list *z = NULL; char *data; int i = 0; printf("adding elements...\n"); for(i = 0; i < 128000; i++) { data = malloc(1024); data[0] = i; z = list_append(z, data); } system("pause"); list_free_all(z); printf("freeing...\n"); system("pause"); return 0; }
void list_destroy(list_ptr_t *list){ list_free_all(list); }
void list_destruct(linked_list_t* list, list_elem_fun f) { list_map(list,f); list_free_all(list); }