1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-22 07:10:55 +00:00

fix deadlock in task module

This commit is contained in:
Anker Jam 2020-10-05 00:16:58 +08:00
parent c5d43e87fe
commit 4dc694411f

View File

@ -451,6 +451,11 @@ func run() {
taskLock.Unlock() taskLock.Unlock()
continue continue
case <-stop: case <-stop:
taskLock.Lock()
if isstart {
isstart = false
}
taskLock.Unlock()
return return
} }
} }
@ -458,15 +463,9 @@ func run() {
// StopTask stop all tasks // StopTask stop all tasks
func StopTask() { func StopTask() {
taskLock.Lock()
defer taskLock.Unlock()
if isstart {
isstart = false
stop <- true stop <- true
} }
}
// AddTask add task with name // AddTask add task with name
func AddTask(taskname string, t Tasker) { func AddTask(taskname string, t Tasker) {
taskLock.Lock() taskLock.Lock()