runtime chan fix: ChanTryRecv

This commit is contained in:
xushiwei
2024-07-07 17:23:21 +08:00
parent a57d49b057
commit 66f2cbb91f

View File

@@ -167,10 +167,10 @@ func ChanTryRecv(p *Chan, v unsafe.Pointer, eltSize int) (recvOK bool, tryOK boo
p.cond.Broadcast()
if n == 0 {
p.mutex.Lock()
if p.getp == chanHasRecv {
for p.getp == chanHasRecv && !p.close {
p.cond.Wait(&p.mutex)
}
recvOK = (p.getp != chanHasRecv)
recvOK = !p.close
tryOK = recvOK
p.mutex.Unlock()
} else {