================
@@ -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

Reply via email to