From e238dc033725fde54c3f497cb52773c3385e2435 Mon Sep 17 00:00:00 2001 From: Aleksandr Balezin Date: Sun, 15 Mar 2026 09:22:42 +0300 Subject: [PATCH] perf: reuse timer --- pkg/streamer/ssh/ssh.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/streamer/ssh/ssh.go b/pkg/streamer/ssh/ssh.go index 5fb8efb..b2faa29 100644 --- a/pkg/streamer/ssh/ssh.go +++ b/pkg/streamer/ssh/ssh.go @@ -276,6 +276,8 @@ func chanAgg(ctx context.Context, in, out chan []byte, readTimeout time.Duration lastWrite := time.Now() buffer := []byte{} buffCounter := 0 + timer := time.NewTimer(readTimeout / 10) + defer timer.Stop() L: for { sinceLastWrite := time.Since(lastWrite) @@ -287,11 +289,12 @@ L: if sinceLastWrite < iterReadTimeout { wait = iterReadTimeout - sinceLastWrite } + timer.Reset(wait) select { case <-ctx.Done(): err = ctx.Err() break L - case <-time.After(wait): + case <-timer.C: lastWrite = time.Now() if len(buffer) > 0 { out <- buffer