Merge pull request #458 from xushiwei/ll

runtime chan fix: ChanTryRecv
This commit is contained in:
xushiwei
2024-07-07 17:36:53 +08:00
committed by GitHub

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 {