99 "google.golang.org/grpc"
1010 "google.golang.org/grpc/metadata"
1111
12+ "github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
1213 "github.com/ydb-platform/ydb-go-sdk/v3/internal/wrap"
1314 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
1415 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
@@ -17,15 +18,20 @@ import (
1718
1819type grpcClientStream struct {
1920 grpc.ClientStream
21+ ctx context.Context
2022 c * conn
2123 wrapping bool
2224 traceID string
2325 sentMark * modificationMark
2426 onDone func (ctx context.Context , md metadata.MD )
25- recv func (error ) func (error , trace.ConnState , map [string ][]string )
2627}
2728
2829func (s * grpcClientStream ) CloseSend () (err error ) {
30+ onDone := trace .DriverOnConnStreamCloseSend (s .c .config .Trace (), & s .ctx , stack .FunctionID ("" ))
31+ defer func () {
32+ onDone (err )
33+ }()
34+
2935 err = s .ClientStream .CloseSend ()
3036
3137 if err != nil {
@@ -46,6 +52,11 @@ func (s *grpcClientStream) CloseSend() (err error) {
4652}
4753
4854func (s * grpcClientStream ) SendMsg (m interface {}) (err error ) {
55+ onDone := trace .DriverOnConnStreamSendMsg (s .c .config .Trace (), & s .ctx , stack .FunctionID ("" ))
56+ defer func () {
57+ onDone (err )
58+ }()
59+
4960 cancel := createPinger (s .c )
5061 defer cancel ()
5162
@@ -77,15 +88,18 @@ func (s *grpcClientStream) SendMsg(m interface{}) (err error) {
7788}
7889
7990func (s * grpcClientStream ) RecvMsg (m interface {}) (err error ) {
91+ onDone := trace .DriverOnConnStreamRecvMsg (s .c .config .Trace (), & s .ctx , stack .FunctionID ("" ))
92+ defer func () {
93+ onDone (err )
94+ }()
95+
8096 cancel := createPinger (s .c )
8197 defer cancel ()
8298
8399 defer func () {
84- onDone := s .recv (xerrors .HideEOF (err ))
85100 if err != nil {
86101 md := s .ClientStream .Trailer ()
87- onDone (xerrors .HideEOF (err ), s .c .GetState (), md )
88- s .onDone (s .ClientStream .Context (), md )
102+ s .onDone (s .ctx , md )
89103 }
90104 }()
91105
0 commit comments