================
@@ -37,6 +37,12 @@ class ScriptedInterface {
     return m_scripted_metadata;
   }
 
+  /// Whether the user can invoke this extension directly, the way a scripted
+  /// command can. Those never introduce the target's API mutex bypass, so at
+  /// top level they serialize like any other command; nested inside an
+  /// already-bypassed callback every extension inherits the ambient policy.
+  virtual bool UserCanRunDirectly() const { return false; }
----------------
medismailben wrote:

I originally implemented this "inverted" (`InternalCallback` and defaulting to 
true) but I felt like `UserCanRunDirectly` was easier to reason about. We've 
discussed this briefly with @jimingham offline and long term we might have to 
resolve what dynamically using the current execution context, but for now since 
we only have a single case of opt-out this seemed fine and we have other 
plugins that does something similar.

> can we extract the logic into a hermetic function that does both
Not sure what you mean by this ? Are you suggesting adding a method that 
perform the check AND push the policy if needed, and call that function from 
the various python entry-points ?

https://github.com/llvm/llvm-project/pull/208242
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to