mirror of https://github.com/grpc/grpc-go.git
				
				
				
			Always close tracing when a stream goes wrong
This commit is contained in:
		
							parent
							
								
									0be94ab3f5
								
							
						
					
					
						commit
						5085c7628d
					
				| 
						 | 
				
			
			@ -204,6 +204,9 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) {
 | 
			
		|||
		cs.mu.Unlock()
 | 
			
		||||
	}
 | 
			
		||||
	defer func() {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			cs.finish(err)
 | 
			
		||||
		}
 | 
			
		||||
		if err == nil || err == io.EOF {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -251,6 +254,7 @@ func (cs *clientStream) RecvMsg(m interface{}) (err error) {
 | 
			
		|||
		}
 | 
			
		||||
		if err == io.EOF {
 | 
			
		||||
			if cs.s.StatusCode() == codes.OK {
 | 
			
		||||
				cs.finish(err)
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
			return Errorf(cs.s.StatusCode(), cs.s.StatusDesc())
 | 
			
		||||
| 
						 | 
				
			
			@ -272,6 +276,11 @@ func (cs *clientStream) RecvMsg(m interface{}) (err error) {
 | 
			
		|||
 | 
			
		||||
func (cs *clientStream) CloseSend() (err error) {
 | 
			
		||||
	err = cs.t.Write(cs.s, nil, &transport.Options{Last: true})
 | 
			
		||||
	defer func() {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			cs.finish(err)
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	if err == nil || err == io.EOF {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue