static void finalize_work(void *args) { garbage_list *list = (garbage_list *)args; size_t blocks_freed = 0, bytes_freed = 0; Zone *zone = list->zone; zone->invalidate_garbage(list->count, list->garbage); zone->free_garbage(false, list->count, list->garbage, blocks_freed, bytes_freed); // TODO: all blocks are in the small admin, create a batched version. zone->clear_zombies(); aux_free(list); #if DEBUG __sync_add_and_fetch(&blocks_scavenged_globally, blocks_freed); __sync_add_and_fetch(&bytes_scavenged_globally, bytes_freed); #endif }