From 421b7814a647bb503485f6ae02fb7ce993bc1fee Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 29 Apr 2024 22:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E5=88=B6=E8=AF=BB=E5=86=99=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=9C=80=E5=B0=8F=E5=80=BC=E4=B8=BA4=EF=BC=8C?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=BC=E4=B8=BA32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/utils/fs/limiter.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/utils/fs/limiter.go b/internal/utils/fs/limiter.go index e809b93..040bb8b 100644 --- a/internal/utils/fs/limiter.go +++ b/internal/utils/fs/limiter.go @@ -7,8 +7,9 @@ import ( "time" ) -var WriterLimiter = NewLimiter(runtime.NumCPU()) -var ReaderLimiter = NewLimiter(runtime.NumCPU()) +var maxThreads = runtime.NumCPU() +var WriterLimiter = NewLimiter(maxThreads) +var ReaderLimiter = NewLimiter(maxThreads) type Limiter struct { threads chan struct{} @@ -16,6 +17,13 @@ type Limiter struct { } func NewLimiter(threads int) *Limiter { + if threads < 4 { + threads = 4 + } + if threads > 32 { + threads = 32 + } + var threadsChan = make(chan struct{}, threads) for i := 0; i < threads; i++ { threadsChan <- struct{}{}