JDevlieghere added a comment. In https://reviews.llvm.org/D48393#1139327, @labath wrote:
> It's even more complicated than that, in case you really have reference > cycles, you can have multiple threads starting parsing from different points > in that cycle, and getting deadlocked waiting for the DIE_IS_BEING_PARSED > results from each other. > > The only sane algorithm I can come up right now is to make the list of parsed > dies local to each thread/parsing entity (e.g. via a "visited" list), and > only update the global map once the parsing has completed (successfully or > not). This can potentially duplicate some effort where one thread parses a > type only to find out that it has already been parsed, but hopefully that is > not going to be the common case. The alternative is some complicated resource > cycle detection scheme. I gave this a shot in https://reviews.llvm.org/D52406 but I'm afraid it's too simple to be correct. Pavel, could you give it a look and let me know whether that was what you had in mind? https://reviews.llvm.org/D48393 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits