replace non-blocking send, receive syntax with select

R=golang-dev, nigeltao, niemeyer, r
CC=golang-dev
https://golang.org/cl/4079053
This commit is contained in:
Russ Cox 2011-01-31 18:36:28 -05:00
parent fc52d7029f
commit f4e76d8309
27 changed files with 399 additions and 202 deletions

View file

@ -140,13 +140,16 @@ func runPacket(t *testing.T, network, addr string, listening chan<- string, done
listening <- c.LocalAddr().String()
c.SetReadTimeout(10e6) // 10ms
var buf [1000]byte
Run:
for {
n, addr, err := c.ReadFrom(buf[0:])
if e, ok := err.(Error); ok && e.Timeout() {
if done <- 1 {
break
select {
case done <- 1:
break Run
default:
continue Run
}
continue
}
if err != nil {
break