()
| 15 | } |
| 16 | |
| 17 | func NewToolService() *ToolService { return &ToolService{cache: newDetectionCache()} } |
| 18 | |
| 19 | // maxDetectionWorkers caps the detection pool. The work is I/O-bound — each |
| 20 | // probe spends its time waiting on a subprocess — so we run up to one goroutine |