MCPcopy
hub / github.com/fish2018/pansou / acquireWorkerSlot

Function acquireWorkerSlot

plugin/plugin.go:333–353  ·  view source on GitHub ↗

acquireWorkerSlot 尝试获取工作槽

()

Source from the content-addressed store, hash-verified

331
332// acquireWorkerSlot 尝试获取工作槽
333func acquireWorkerSlot() bool {
334 // 获取最大任务数
335 maxTasks := int32(defaultMaxBackgroundTasks)
336 if config.AppConfig != nil {
337 maxTasks = int32(config.AppConfig.AsyncMaxBackgroundTasks)
338 }
339
340 // 检查总任务数
341 if atomic.LoadInt32(&backgroundTasksCount) >= maxTasks {
342 return false
343 }
344
345 // 尝试获取工作槽
346 select {
347 case backgroundWorkerPool <- struct{}{}:
348 atomic.AddInt32(&backgroundTasksCount, 1)
349 return true
350 default:
351 return false
352 }
353}
354
355// releaseWorkerSlot 释放工作槽
356func releaseWorkerSlot() {

Callers 3

AsyncSearchMethod · 0.85
AsyncSearchWithResultMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected