[Lldb-commits] [PATCH] D37923: Implement interactive command interruption

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 19 11:40:03 PDT 2017


I must be missing something.  

DisaptchInputInterrupt knows how to interrupt a running process, and because of Enrico's Python interruption stuff it will interrupt script execution at some point but it wasn't very reliable last time I tried it.  

But the whole point of this patch is that in general commands don't listen to that interrupt if they are just running in a loop doing work.  Sending the interrupt is not enough.

Jim



> On Sep 19, 2017, at 11:36 AM, Zachary Turner <zturner at google.com> wrote:
> 
> 
> 
> On Tue, Sep 19, 2017 at 11:34 AM Jim Ingham <jingham at apple.com> wrote:
> 
> > On Sep 19, 2017, at 11:30 AM, Zachary Turner <zturner at google.com> wrote:
> >
> >
> >
> > On Tue, Sep 19, 2017 at 11:27 AM Jim Ingham <jingham at apple.com> wrote:
> > We agreed to forwards compatibility because people write big scripts that use the SB API, implement GUI's on top of them (more than just Xcode) etc.  So we try not to jerk those folks around.  That adds a little more responsibility on our part to think carefully about what we add, but the notion that we should refrain from making useful functionality available because we'd rather not be beholden to our decisions seems really wrong-headed to me.
> >
> > And in this case there's a clear use for this. For instance the xnu macros have a bunch of Python based commands that spew out pages and pages of output.  Those guys would love to make their commands interruptible.  To do that they would need to call WasInterrupted.  So this is 100% something that should be available at the SB API layer.
> >
> >
> > Couldn't it just return eCommandFinishedNoResult?  Or a new value, eCommandFinishedPartialResult?
> 
> I don't follow.  How would it know the user asked it to stop?
> 
> 
> The user already has a way to interrupt a command via DispatchInputInterrupt.  If the command is then interrupted and output is lost as a result, the private api returns the appropriate value, which the user can check for.



More information about the lldb-commits mailing list