pool.go 462 B

12345678910111213141516171819202122232425262728293031323334
  1. package routine
  2. import (
  3. "sync"
  4. "github.com/langgenius/dify-plugin-daemon/internal/utils/log"
  5. "github.com/panjf2000/ants"
  6. )
  7. var (
  8. p *ants.Pool
  9. l sync.Mutex
  10. )
  11. func IsInit() bool {
  12. l.Lock()
  13. defer l.Unlock()
  14. return p != nil
  15. }
  16. func InitPool(size int) {
  17. l.Lock()
  18. defer l.Unlock()
  19. if p != nil {
  20. return
  21. }
  22. log.Info("init routine pool, size: %d", size)
  23. p, _ = ants.NewPool(size, ants.WithNonblocking(false))
  24. }
  25. func Submit(f func()) {
  26. p.Submit(f)
  27. }