Merge pull request #35 from antmicro/59336-fix-filtered-arrivals-race
Guarded insertion into filtered_arrivals_ in sta::Search
This commit is contained in:
commit
d9b28d03ca
|
|
@ -606,6 +606,7 @@ protected:
|
||||||
ExceptionFrom *filter_from_;
|
ExceptionFrom *filter_from_;
|
||||||
ExceptionTo *filter_to_;
|
ExceptionTo *filter_to_;
|
||||||
VertexSet *filtered_arrivals_;
|
VertexSet *filtered_arrivals_;
|
||||||
|
std::mutex filtered_arrivals_lock_;
|
||||||
bool found_downstream_clk_pins_;
|
bool found_downstream_clk_pins_;
|
||||||
PathGroups *path_groups_;
|
PathGroups *path_groups_;
|
||||||
VisitPathEnds *visit_path_ends_;
|
VisitPathEnds *visit_path_ends_;
|
||||||
|
|
|
||||||
|
|
@ -2686,8 +2686,10 @@ Search::setVertexArrivals(Vertex *vertex,
|
||||||
}
|
}
|
||||||
tag_bldr->copyArrivals(tag_group, prev_arrivals, prev_paths);
|
tag_bldr->copyArrivals(tag_group, prev_arrivals, prev_paths);
|
||||||
vertex->setTagGroupIndex(tag_group->index());
|
vertex->setTagGroupIndex(tag_group->index());
|
||||||
if (tag_group->hasFilterTag())
|
if (tag_group->hasFilterTag()) {
|
||||||
|
LockGuard lock(this->filtered_arrivals_lock_);
|
||||||
filtered_arrivals_->insert(vertex);
|
filtered_arrivals_->insert(vertex);
|
||||||
|
}
|
||||||
|
|
||||||
if (has_requireds) {
|
if (has_requireds) {
|
||||||
requiredInvalid(vertex);
|
requiredInvalid(vertex);
|
||||||
|
|
@ -2712,8 +2714,10 @@ Search::setVertexArrivals(Vertex *vertex,
|
||||||
tag_bldr->copyArrivals(tag_group, arrivals, prev_paths);
|
tag_bldr->copyArrivals(tag_group, arrivals, prev_paths);
|
||||||
|
|
||||||
vertex->setTagGroupIndex(tag_group->index());
|
vertex->setTagGroupIndex(tag_group->index());
|
||||||
if (tag_group->hasFilterTag())
|
if (tag_group->hasFilterTag()) {
|
||||||
|
LockGuard lock(this->filtered_arrivals_lock_);
|
||||||
filtered_arrivals_->insert(vertex);
|
filtered_arrivals_->insert(vertex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue