diff --git a/transport/http2_client.go b/transport/http2_client.go index e9cf6bec..6f9dd0f5 100644 --- a/transport/http2_client.go +++ b/transport/http2_client.go @@ -252,8 +252,7 @@ func (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr) *Stream { s.windowHandler = func(n int) { t.updateWindow(s, uint32(n)) } - // Make a stream be able to cancel the pending operations by itself. - s.ctx, s.cancel = context.WithCancel(ctx) + s.ctx = ctx s.dec = &recvBufferReader{ ctx: s.ctx, goAway: s.goAway, diff --git a/transport/transport.go b/transport/transport.go index f4d8dafa..e2f691ef 100644 --- a/transport/transport.go +++ b/transport/transport.go @@ -169,7 +169,8 @@ type Stream struct { // nil for client side Stream. st ServerTransport // ctx is the associated context of the stream. - ctx context.Context + ctx context.Context + // cancel is always nil for client side Stream. cancel context.CancelFunc // done is closed when the final status arrives. done chan struct{}