Skip to content

Commit

Permalink
eliminate confusing errs channel
Browse files Browse the repository at this point in the history
  • Loading branch information
tmc committed Jun 7, 2016
1 parent 1725708 commit 6b70c26
Showing 1 changed file with 22 additions and 39 deletions.
61 changes: 22 additions & 39 deletions protoc-gen-grpc-gateway/gengateway/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,54 +245,37 @@ var (
return nil, metadata, err
}
dec := marshaler.NewDecoder(req.Body)
firstSend:= make(chan error, 1)
go func(errs chan<- error) {
defer func(){
if err := stream.CloseSend(); err != nil {
grpclog.Printf("Failed to terminate client stream: %v", err)
}
}()
handleSend := func() error {
var protoReq {{.Method.RequestType.GoType .Method.Service.File.GoPkg.Path}}
err = dec.Decode(&protoReq)
if err != nil {
grpclog.Printf("Failed to decode request: %v", err)
return err
}
if err = stream.Send(&protoReq); err != nil {
grpclog.Printf("Failed to send request: %v", err)
return err
}
return nil
}
firstResult := handleSend()
go func() {
for {
var protoReq {{.Method.RequestType.GoType .Method.Service.File.GoPkg.Path}}
err = dec.Decode(&protoReq)
if err == nil {
select {
case errs <- err:
default:
}
}
if err == io.EOF {
select {
case errs <- err:
default:
}
return
}
if err != nil {
grpclog.Printf("Failed to decode request: %v", err)
select {
case errs <- grpc.Errorf(codes.InvalidArgument, "%v", err):
default:
}
return
}
if err = stream.Send(&protoReq); err != nil {
grpclog.Printf("Failed to send request: %v", err)
select {
case errs <- err:
default:
}
return
if err := handleSend(); err != nil {
break
}
}
}(firstSend)
if err := stream.CloseSend(); err != nil {
grpclog.Printf("Failed to terminate client stream: %v", err)
}
}()
header, err := stream.Header()
if err != nil {
grpclog.Printf("Failed to get header from client: %v", err)
return nil, metadata, err
}
metadata.HeaderMD = header
return stream, metadata, <-firstSend
return stream, metadata, firstResult
}
`))

Expand Down

0 comments on commit 6b70c26

Please sign in to comment.