================ @@ -1692,6 +1692,20 @@ class Target : public std::enable_shared_from_this<Target>, } }; +/// The private implementation backing SBLock. +struct APILock { + APILock(std::recursive_mutex &mutex) : lock(mutex) {} + std::lock_guard<std::recursive_mutex> lock; +}; + +/// The private implementation used by SBLock to hand out the target API mutex. +/// It has a TargetSP to ensure the lock cannot outlive the target. +struct TargetAPILock : public APILock { ---------------- JDevlieghere wrote:
I consciously did it this way to avoid giving the impression that `SBLock` can only be used for the target API lock. The latter is the only user, but if in the future there's another lock we want to expose through the SB API, it can inherit from this class. https://github.com/llvm/llvm-project/pull/131404 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits