[lldb] Make the order in which ClusterManager calls destructors deterministic
authorRaphael Isemann <teemperor@gmail.com>
Mon, 3 Feb 2020 12:32:52 +0000 (13:32 +0100)
committerRaphael Isemann <teemperor@gmail.com>
Mon, 3 Feb 2020 12:33:44 +0000 (13:33 +0100)
commit7f4cb2e7b67afd177cf8f8939d4bf5dcff33f20b
treeb1e26775759cadd168030a91792197d4b7aca269
parentf3fa4a34b62ec283ffda136af4dd55c223c1e6b3
[lldb] Make the order in which ClusterManager calls destructors deterministic

Summary:
ClusterManager is using a SmallPtrSet to store the objects in it. We always only add every object once so using a set is not necessary.
Furthermore having a set means that iterating over it is nondeterministic (at least with more than 16 objects in it), so the order in
which the destructors for the managed objects are called is currently also non-deterministic.

This just replaces the SmallPtrSet with a SmallVector.

Reviewers: labath, JDevlieghere

Reviewed By: labath

Subscribers: mgrang, abidh, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D73871
lldb/include/lldb/Utility/SharedCluster.h