jimingham wrote: Does this look better?
The situation is that there are really only three "writer" API's: `GetOnlyConcreteFramesUpTo`,` `Clear` and the second half of `GetFramesUpTo`, and only Clear is called with the intention of changing the list contents. And none of these were client API's. All the client API's were formally readers - they shouldn't have to know that we update frames lazily. So the responsibilities were already pretty strictly limited. But clearer is for sure better, so I renamed `GetOnlyConcreteFramesUpTo` to `FetchOnlyConcreteFramesUpTo` and moved the second half of GetFramesUpTo into `FetchFramesUpTo`. Those and Clear are the only places where the list is actually mutated. `Clear` doesn't need to do any dance, since it's a client API and intends to change the list. Other than that, clients who want to read the list need to acquire the shared mutex, if the `Fetch` functions need to add frames to fulfill that request, that should happen silently when some client asks for more frames than have been fetched. https://github.com/llvm/llvm-project/pull/117252 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits