// Copyright GoFrame Author(https://goframe.org). All Rights Reserved. // // This Source Code Form is subject to the terms of the MIT License. // If a copy of the MIT was not distributed with this file, // You can obtain one at https://github.com/gogf/gf. package grpool import ( "context" "github.com/gogf/gf/v2/os/gtimer" ) // supervisor checks the job list and fork new worker goroutine to handle the job // if there are jobs but no workers in pool. func (p *Pool) supervisor(ctx context.Context) { if p.IsClosed() { gtimer.Exit() } if p.list.Size() > 0 && p.count.Val() == 0 { var number = p.list.Size() if p.limit > 0 { number = p.limit } for i := 0; i < number; i++ { p.checkAndFork() } } }