view: generate_view_updates: close builder readers when done
Make sure to close the builder's _updates and optional _existings readers before they are destroyed. Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
This commit is contained in:
@@ -854,6 +854,10 @@ public:
|
|||||||
|
|
||||||
future<std::vector<frozen_mutation_and_schema>> build();
|
future<std::vector<frozen_mutation_and_schema>> build();
|
||||||
|
|
||||||
|
future<> close() noexcept {
|
||||||
|
return when_all_succeed(_updates.close(), _existings->close()).discard_result();
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void generate_update(clustering_row&& update, std::optional<clustering_row>&& existing);
|
void generate_update(clustering_row&& update, std::optional<clustering_row>&& existing);
|
||||||
future<stop_iteration> on_results();
|
future<stop_iteration> on_results();
|
||||||
@@ -1039,7 +1043,9 @@ future<std::vector<frozen_mutation_and_schema>> generate_view_updates(
|
|||||||
}));
|
}));
|
||||||
auto builder = std::make_unique<view_update_builder>(base, std::move(vs), std::move(updates), std::move(existings), now);
|
auto builder = std::make_unique<view_update_builder>(base, std::move(vs), std::move(updates), std::move(existings), now);
|
||||||
auto f = builder->build();
|
auto f = builder->build();
|
||||||
return f.finally([builder = std::move(builder)] { });
|
return f.finally([builder = std::move(builder)] {
|
||||||
|
return builder->close();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
query::clustering_row_ranges calculate_affected_clustering_ranges(const schema& base,
|
query::clustering_row_ranges calculate_affected_clustering_ranges(const schema& base,
|
||||||
|
|||||||
Reference in New Issue
Block a user