fix hy tls bug

fix task
This commit is contained in:
yuzuki999
2023-06-18 03:37:27 +08:00
parent 7ac6232639
commit c536c46703
7 changed files with 28 additions and 19 deletions

View File

@@ -24,20 +24,24 @@ func (t *Task) hasClosed() bool {
return !t.running
}
func (t *Task) checkedExecute() error {
func (t *Task) checkedExecute(first bool) error {
if t.hasClosed() {
return nil
}
t.access.Lock()
defer t.access.Unlock()
if first {
if err := t.Execute(); err != nil {
t.running = false
return err
}
}
if !t.running {
return nil
}
t.timer = time.AfterFunc(t.Interval, func() {
t.checkedExecute()
t.checkedExecute(true)
})
return nil
@@ -52,21 +56,12 @@ func (t *Task) Start(first bool) error {
}
t.running = true
t.access.Unlock()
if first {
if err := t.Execute(); err != nil {
t.access.Lock()
t.running = false
t.access.Unlock()
return err
}
}
if err := t.checkedExecute(); err != nil {
if err := t.checkedExecute(first); err != nil {
t.access.Lock()
t.running = false
t.access.Unlock()
return err
}
return nil
}