- tasksch中,任务完成后要将worker置空,否则被管理的任务的worker会hold住大量对象
This commit is contained in:
@@ -24,6 +24,6 @@ func (m *SyncMapWithTimeout) Delete(key interface{}) {
|
||||
if value, ok := m.timers.Load(key); ok {
|
||||
timer := value.(*time.Timer)
|
||||
timer.Stop()
|
||||
}
|
||||
m.timers.Delete(key)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,6 +179,7 @@ func (task *ParallelTask) Run() {
|
||||
|
||||
close(task.subFinishChan)
|
||||
task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放
|
||||
task.worker = nil
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,8 @@ func (task *SeqTask) Run() {
|
||||
task.Result = taskResult
|
||||
task.mainErr = taskErr
|
||||
task.locker.Unlock()
|
||||
|
||||
task.worker = nil
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user