jimingham wrote:

We have another negotiation among the threads that want to run with other 
threads suspended.  We let all the threads that want to run with others 
suspended go in a round robin and only when there are none of those left do we 
let the "run all threads" plans do their thing.

Maybe there's a similar principle we can come up with here.  Let all the 
backwards running threads run till they are done and then make forward 
progress.  Then to handle things like "forward execution of a function call 
plan while backwards execution" by having thread plans have an "actual run 
direction" - which is "forward" or "backwards" and a "run intention" - which is 
"forward", "backwards" or "no opinion".  If a plan has no intention, then we 
query its parent.  When we're querying the threads to see who is forward going 
and who backwards, we'd use the "run intention".  Function calling thread plans 
would have "no intention" so they wouldn't move their "backwards" running 
threads into the forward camp...

https://github.com/llvm/llvm-project/pull/112079
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to