From e1be2d9e488898701f24ddf552c820bd8743b3c0 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Wed, 16 Aug 2023 16:32:09 +0300 Subject: [PATCH] Add buffer to pipe reader --- internal/exec/pipe.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/exec/pipe.go b/internal/exec/pipe.go index de101e04..a76f381c 100644 --- a/internal/exec/pipe.go +++ b/internal/exec/pipe.go @@ -1,9 +1,11 @@ package exec import ( - "github.com/AlexxIT/go2rtc/pkg/core" + "bufio" "io" "os/exec" + + "github.com/AlexxIT/go2rtc/pkg/core" ) // PipeCloser - return StdoutPipe that Kill cmd on Close call @@ -13,14 +15,16 @@ func PipeCloser(cmd *exec.Cmd) (io.ReadCloser, error) { return nil, err } - return pipeCloser{stdout, cmd}, nil + // add buffer for pipe reader to reduce syscall + return pipeCloser{bufio.NewReaderSize(stdout, core.BufferSize), stdout, cmd}, nil } type pipeCloser struct { - io.ReadCloser + io.Reader + io.Closer cmd *exec.Cmd } func (p pipeCloser) Close() error { - return core.Any(p.ReadCloser.Close(), p.cmd.Process.Kill(), p.cmd.Wait()) + return core.Any(p.Closer.Close(), p.cmd.Process.Kill(), p.cmd.Wait()) }