12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- From 153b72ed623876ad73b731c2ec2344e9057d3c35 Mon Sep 17 00:00:00 2001
- From: mzz2017 <[email protected]>
- Date: Wed, 21 Sep 2022 16:50:24 +0800
- Subject: [PATCH] fix: unexpected exit does not apply stop steps
- ---
- service/core/v2ray/process.go | 4 ++--
- service/core/v2ray/processManager.go | 8 +++-----
- 2 files changed, 5 insertions(+), 7 deletions(-)
- --- a/core/v2ray/process.go
- +++ b/core/v2ray/process.go
- @@ -35,7 +35,7 @@ type Process struct {
- tag2WhichIndex map[string]int
- }
-
- -func NewProcess(tmpl *Template, prestart func() error, poststart func() error) (process *Process, err error) {
- +func NewProcess(tmpl *Template, prestart func() error, poststart func() error, stopfunc func(p *Process)) (process *Process, err error) {
- process = &Process{
- template: tmpl,
- }
- @@ -111,7 +111,7 @@ func NewProcess(tmpl *Template, prestart
- // canceled by v2rayA
- return
- }
- - defer ProcessManager.Stop(false)
- + defer stopfunc(process)
- var t []string
- if p != nil {
- if p.Success() {
- --- a/core/v2ray/processManager.go
- +++ b/core/v2ray/processManager.go
- @@ -245,16 +245,14 @@ func (m *CoreProcessManager) Start(t *Te
- return m.beforeStart(t)
- }, func() error {
- return m.afterStart(t)
- + }, func(p *Process) {
- + m.p = p
- + ProcessManager.Stop(false)
- })
- if err != nil {
- return err
- }
- m.p = process
- - defer func() {
- - if err != nil {
- - m.stop(true)
- - }
- - }()
-
- configure.SetRunning(true)
- return nil
|