mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-23 06:05:26 +00:00
32 lines
548 B
Go
32 lines
548 B
Go
package protocolstate
|
|
|
|
import (
|
|
"github.com/projectdiscovery/utils/env"
|
|
"github.com/projectdiscovery/utils/memguardian"
|
|
)
|
|
|
|
var (
|
|
MaxThreadsOnLowMemory = env.GetEnvOrDefault("MEMGUARDIAN_THREADS", 0)
|
|
)
|
|
|
|
func IsLowOnMemory() bool {
|
|
if memguardian.DefaultMemGuardian != nil && memguardian.DefaultMemGuardian.Warning.Load() {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func GuardThreads(current int) int {
|
|
if MaxThreadsOnLowMemory > 0 {
|
|
return MaxThreadsOnLowMemory
|
|
}
|
|
|
|
fraction := int(current / 5)
|
|
if fraction > 0 {
|
|
return fraction
|
|
}
|
|
|
|
return 1
|
|
}
|