diff options
Diffstat (limited to 'doc/progs/server.go')
| -rw-r--r-- | doc/progs/server.go | 38 | 
1 files changed, 19 insertions, 19 deletions
| diff --git a/doc/progs/server.go b/doc/progs/server.go index 8906e9635..f3a6b1889 100644 --- a/doc/progs/server.go +++ b/doc/progs/server.go @@ -7,45 +7,45 @@ package main  import "fmt"  type request struct { -	a, b    int; -	replyc  chan int; +	a, b    int +	replyc  chan int  }  type binOp func(a, b int) int  func run(op binOp, req *request) { -	reply := op(req.a, req.b); -	req.replyc <- reply; +	reply := op(req.a, req.b) +	req.replyc <- reply  }  func server(op binOp, service chan *request) {  	for { -		req := <-service; -		go run(op, req);  // don't wait for it +		req := <-service +		go run(op, req)  // don't wait for it  	}  }  func startServer(op binOp) chan *request { -	req := make(chan *request); -	go server(op, req); -	return req; +	req := make(chan *request) +	go server(op, req) +	return req  }  func main() { -	adder := startServer(func(a, b int) int { return a + b }); -	const N = 100; -	var reqs [N]request; +	adder := startServer(func(a, b int) int { return a + b }) +	const N = 100 +	var reqs [N]request  	for i := 0; i < N; i++ { -		req := &reqs[i]; -		req.a = i; -		req.b = i + N; -		req.replyc = make(chan int); -		adder <- req; +		req := &reqs[i] +		req.a = i +		req.b = i + N +		req.replyc = make(chan int) +		adder <- req  	}  	for i := N-1; i >= 0; i-- {   // doesn't matter what order  		if <-reqs[i].replyc != N + 2*i { -			fmt.Println("fail at", i); +			fmt.Println("fail at", i)  		}  	} -	fmt.Println("done"); +	fmt.Println("done")  } | 
