mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-21 23:00:42 -08:00
feat: add virtual machine scan command (#2910)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
This commit is contained in:
30
pkg/semaphore/semaphore.go
Normal file
30
pkg/semaphore/semaphore.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package semaphore
|
||||
|
||||
import "golang.org/x/sync/semaphore"
|
||||
|
||||
const defaultSize = 5
|
||||
|
||||
type options struct {
|
||||
size int64
|
||||
}
|
||||
|
||||
type option func(*options)
|
||||
|
||||
func WithDefault(n int64) option {
|
||||
return func(opts *options) {
|
||||
opts.size = defaultSize
|
||||
}
|
||||
}
|
||||
|
||||
func New(slow bool, opts ...option) *semaphore.Weighted {
|
||||
o := &options{size: defaultSize}
|
||||
for _, opt := range opts {
|
||||
opt(o)
|
||||
}
|
||||
if slow {
|
||||
// Process in series
|
||||
return semaphore.NewWeighted(1)
|
||||
}
|
||||
// Process in parallel
|
||||
return semaphore.NewWeighted(o.size)
|
||||
}
|
||||
Reference in New Issue
Block a user