提交 c0a0e0bd 编写于 作者: D Derek Parker

proc/proc: Fix OSX hangs in highly parallel programs

`next` would hang in highly parallel programs, causing test flickers and
unexpected behavior. This patch fixes it by examining all stopped
threads whenever Delve gets a notification, instead of just the thread
that caused the stop.
上级 1094c32f
......@@ -309,10 +309,14 @@ func (dbp *Process) next() (err error) {
}
for {
th, err := dbp.trapWait(-1)
_, err := dbp.trapWait(-1)
if err != nil {
return err
}
for _, th := range dbp.Threads {
if !th.Stopped() {
continue
}
tg, err := th.GetG()
if err != nil {
return err
......@@ -333,6 +337,7 @@ func (dbp *Process) next() (err error) {
return err
}
}
}
}
func (dbp *Process) setChanRecvBreakpoints() (int, error) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册