Skip to content

Commit 7129fa5

Browse files
authored
Merge pull request #9 from devchat-ai/test
Fix worker count logic in adjustWorkers function
2 parents 6fbdbde + ec79ff3 commit 7129fa5

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

gopool.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,18 +139,18 @@ func (p *goPool) adjustWorkers() {
139139
select {
140140
case <-ticker.C:
141141
p.cond.L.Lock()
142-
if len(p.taskQueue) > len(p.workerStack)*3/4 && len(p.workerStack) < p.maxWorkers {
142+
if len(p.taskQueue) > len(p.workers)*3/4 && len(p.workers) < p.maxWorkers {
143143
// Double the number of workers until it reaches the maximum
144-
newWorkers := min(len(p.workerStack)*2, p.maxWorkers) - len(p.workerStack)
144+
newWorkers := min(len(p.workers)*2, p.maxWorkers) - len(p.workers)
145145
for i := 0; i < newWorkers; i++ {
146146
worker := newWorker()
147147
p.workers = append(p.workers, worker)
148148
p.workerStack = append(p.workerStack, len(p.workers)-1)
149149
worker.start(p, len(p.workers)-1)
150150
}
151-
} else if len(p.taskQueue) == 0 && len(p.workerStack) > p.minWorkers {
151+
} else if len(p.taskQueue) == 0 && len(p.workers) > p.minWorkers {
152152
// Halve the number of workers until it reaches the minimum
153-
removeWorkers := max((len(p.workerStack)-p.minWorkers)/2, p.minWorkers)
153+
removeWorkers := max((len(p.workers)-p.minWorkers)/2, p.minWorkers)
154154
p.workers = p.workers[:len(p.workers)-removeWorkers]
155155
p.workerStack = p.workerStack[:len(p.workerStack)-removeWorkers]
156156
}

0 commit comments

Comments
 (0)