fix(core): take over agent, reuse callbacks
- Kill running agents before replace - Retry copy with backoff while locked - Reuse syscall callbacks at package scope - Add callback regression test
This commit is contained in:
+13
-12
@@ -45,23 +45,24 @@ func SyncInstalledPath() error {
|
||||
}
|
||||
|
||||
func Disable() error {
|
||||
var regErr error
|
||||
k, err := registry.OpenKey(registry.CURRENT_USER, config.StartupRunKey, registry.SET_VALUE)
|
||||
if err != nil {
|
||||
if errors.Is(err, registry.ErrNotExist) {
|
||||
return nil
|
||||
if !errors.Is(err, registry.ErrNotExist) {
|
||||
regErr = err
|
||||
}
|
||||
} else {
|
||||
err = k.DeleteValue(config.StartupValueName)
|
||||
_ = k.Close()
|
||||
if err != nil && !errors.Is(err, registry.ErrNotExist) {
|
||||
regErr = err
|
||||
}
|
||||
return err
|
||||
}
|
||||
defer k.Close()
|
||||
err = k.DeleteValue(config.StartupValueName)
|
||||
if errors.Is(err, registry.ErrNotExist) {
|
||||
_ = disableWatchdog()
|
||||
return nil
|
||||
taskErr := disableWatchdog()
|
||||
if regErr != nil {
|
||||
return regErr
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return disableWatchdog()
|
||||
return taskErr
|
||||
}
|
||||
|
||||
func installedCommandLine() (string, error) {
|
||||
|
||||
Reference in New Issue
Block a user