And waits for them. That's pointless.
}
        else
        {
            
            
            if (!can_merge_callback(*prev_part, part, nullptr))
            {
                
                prev_part = nullptr;
                
                assert(!parts_ranges.back().empty());
                
                
                
                
                if (!can_merge_callback(nullptr, part, nullptr))
                    continue;
                
                parts_ranges.emplace_back();
            }
        }
        IMergeSelector::Part part_info;
        part_info.size = part->getBytesOnDisk();
        part_info.age = current_time - part->modification_time;
        part_info.level = part->info.level;
        part_info.data = &part;
        part_info.ttl_infos = &part->ttl_infos;
        part_info.compression_codec_desc = part->default_codec->getFullCodecDesc();
        part_info.shall_participate_in_merges = has_volumes_with_disabled_merges ? part->shallParticipateInMerges(storage_policy) : true;
        ++parts_selected_precondition;