jingham added a comment.

In D83446#2142350 <https://reviews.llvm.org/D83446#2142350>, @JDevlieghere 
wrote:

> In D83446#2142301 <https://reviews.llvm.org/D83446#2142301>, @jingham wrote:
>
> > I think the proper way to gate this sort of "race" is to use the process 
> > state.  If the current process state is "stopped" then that means we're 
> > done with the stop processing and ready to allow commands that require the 
> > process to be stopped.
> >
> > When I originally did this, the plan was that the the Public state would 
> > not be set to stopped until the stop event was consumed by the process 
> > listener.  So if you tried to "continue" the process before  the work to 
> > handle the stop event was done, you would see the state as "running" and 
> > the continue would not succeed.
> >
> > However, that ran up against the problem that part of the "asynchronous" 
> > work that you might do on stop can involve running commands and SB API.  
> > Those need to see a public stop state or they won't work correctly.  So the 
> > public state gets set to stopped too early, and then it's possible for this 
> > to be racy.  IMO the solution to this problem should be for the Event 
> > Handler to be able to run its commands "as if" the public state were 
> > stopped, but everybody else who is trying to run commands will still see it 
> > as running.  Then when the event handler is done with it's job, the process 
> > Public state is switched to stopped, and now commands coming from other 
> > sources will run in the stopped state.
>
>
> How would that work with the reproducer issue? How would you prevent the 
> command interpreter from processing the next command before the event handler 
> thread issues the process info packet?


Sorry, I think these issues are orthogonal.  I was mostly responding to Pavel's 
comments.


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83446/new/

https://reviews.llvm.org/D83446



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to