Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2021-09-30 14:28:53 +0300
committerJacob Vosmaer <jacob@gitlab.com>2021-09-30 14:28:53 +0300
commit1ad5f1228d9f4efac4133eec85e2c337455e948d (patch)
treeec91200f898233c17ffa0764b31e285363a42725
parentb64c125ee2cde11b9086e92c59052ff51f8079ee (diff)
Send bigger gRPC messagesjv-for-each-ref
-rw-r--r--internal/gitaly/service/ref/refs.go12
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
}