64
}
65
66
>
func NewDeadlockDetector(params params) *deadlockDetector {
deadlock.go
67
>
return &deadlockDetector{
68
>
logger: params.Logger,
69
>
healthServer: params.HealthServer,
70
>
metricsHandler: params.MetricsHandler.WithTags(metrics.OperationTag(metrics.DeadlockDetectorScope)),
71
>
config: config{
72
>
DumpGoroutines: dynamicconfig.DeadlockDumpGoroutines.Get(params.Collection),
73
>
FailHealthCheck: dynamicconfig.DeadlockFailHealthCheck.Get(params.Collection),
74
>
AbortProcess: dynamicconfig.DeadlockAbortProcess.Get(params.Collection),
75
>
Interval: dynamicconfig.DeadlockInterval.Get(params.Collection),
76
>
MaxWorkersPerRoot: dynamicconfig.DeadlockMaxWorkersPerRoot.Get(params.Collection),
77
>
},
78
>
roots: params.Roots,
79
>
}
80
>
}
81
82
func (dd *deadlockDetector) Start() error {