diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2021-09-30 14:28:53 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2021-09-30 14:28:53 +0300 |
commit | 1ad5f1228d9f4efac4133eec85e2c337455e948d (patch) | |
tree | ec91200f898233c17ffa0764b31e285363a42725 | |
parent | b64c125ee2cde11b9086e92c59052ff51f8079ee (diff) |
Send bigger gRPC messagesjv-for-each-ref
-rw-r--r-- | internal/gitaly/service/ref/refs.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/internal/gitaly/service/ref/refs.go b/internal/gitaly/service/ref/refs.go index ffd1fd2c4..c6e5b141a 100644 --- a/internal/gitaly/service/ref/refs.go +++ b/internal/gitaly/service/ref/refs.go @@ -6,6 +6,7 @@ import ( "context" "errors" "fmt" + "io" "math" "os" "strings" @@ -392,6 +393,10 @@ func (s *server) ForEachRefRaw(req *gitalypb.ForEachRefRawRequest, stream gitaly return err } + stdout := bufio.NewWriterSize(struct{ io.Writer }{streamio.NewWriter(func(p []byte) error { + return stream.Send(&gitalypb.ForEachRefRawResponse{Data: p}) + })}, 32*1024) + catFile, err := repo.Exec(ctx, git.SubCmd{ Name: "cat-file", @@ -401,9 +406,7 @@ func (s *server) ForEachRefRaw(req *gitalypb.ForEachRefRawRequest, stream gitaly }, }, git.WithStdin(pr), - git.WithStdout(streamio.NewWriter(func(p []byte) error { - return stream.Send(&gitalypb.ForEachRefRawResponse{Data: p}) - })), + git.WithStdout(stdout), ) if err != nil { return err @@ -418,6 +421,9 @@ func (s *server) ForEachRefRaw(req *gitalypb.ForEachRefRawRequest, stream gitaly if err := forEachRef.Wait(); err != nil { return err } + if err := stdout.Flush(); err != nil { + return err + } return nil } |