MCPcopy
hub / github.com/safing/portmaster / start

Function start

service/compat/module.go:80–100  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

78}
79
80func start() error {
81 // Create fresh worker managers on Start() to enable clean restarts after Stop().
82 // (after module.Manager().Stop() has been called, all workers are stopped and cannot be reused)
83 module.selfcheckWorkerMgr = module.Manager().NewWorkerMgr("compatibility self-check", selfcheckTaskFunc, nil)
84 module.cleanNotifyThresholdWorkerMgr = module.Manager().NewWorkerMgr("clean notify thresholds", cleanNotifyThreshold, nil)
85
86 startNotify()
87
88 selfcheckNetworkChangedFlag.Refresh()
89
90 // Schedule periodic self-checks.
91 module.selfcheckWorkerMgr.Repeat(5 * time.Minute).Delay(selfcheckTaskRetryAfter)
92 module.cleanNotifyThresholdWorkerMgr.Repeat(1 * time.Hour)
93
94 // Add network change callback to trigger immediate self-check.
95 module.instance.NetEnv().EventNetworkChange.AddCallback("trigger compat self-check", func(_ *mgr.WorkerCtx, _ struct{}) (bool, error) {
96 module.selfcheckWorkerMgr.Delay(selfcheckTaskRetryAfter)
97 return false, nil
98 })
99 return nil
100}
101
102func stop() error {
103 resetSelfCheckState()

Callers 1

StartMethod · 0.70

Calls 8

startNotifyFunction · 0.85
NewWorkerMgrMethod · 0.80
ManagerMethod · 0.65
NetEnvMethod · 0.65
RefreshMethod · 0.45
DelayMethod · 0.45
RepeatMethod · 0.45
AddCallbackMethod · 0.45

Tested by

no test coverage detected