From e26c97cb8beea000767b391ca428373df4862ee4 Mon Sep 17 00:00:00 2001 From: Jin Dong Date: Fri, 9 Jun 2023 18:21:16 +0000 Subject: [PATCH] Save marshalled empty response in streaming service Signed-off-by: Jin Dong --- services/streaming/service.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/services/streaming/service.go b/services/streaming/service.go index 31c555ff8..f7a8bee94 100644 --- a/services/streaming/service.go +++ b/services/streaming/service.go @@ -31,7 +31,16 @@ import ( "google.golang.org/grpc" ) +var emptyResponse typeurl.Any + func init() { + // save marshalled empty response to avoid marshaling everytime + var err error + emptyResponse, err = typeurl.MarshalAny(&ptypes.Empty{}) + if err != nil { + panic(err) + } + plugin.Register(&plugin.Registration{ Type: plugin.GRPCPlugin, ID: "streaming", @@ -69,12 +78,6 @@ func (s *service) Stream(srv api.Streaming_StreamServer) error { return err } - // TODO: Save this response to avoid marshaling everytime - response, err := typeurl.MarshalAny(&ptypes.Empty{}) - if err != nil { - return err - } - cc := make(chan struct{}) ss := &serviceStream{ s: srv, @@ -87,7 +90,7 @@ func (s *service) Stream(srv api.Streaming_StreamServer) error { } // Send response packet after registering stream - if err := srv.Send(protobuf.FromAny(response)); err != nil { + if err := srv.Send(protobuf.FromAny(emptyResponse)); err != nil { return err }