- 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 {
|
if value, ok := m.timers.Load(key); ok {
|
||||||
timer := value.(*time.Timer)
|
timer := value.(*time.Timer)
|
||||||
timer.Stop()
|
timer.Stop()
|
||||||
}
|
|
||||||
m.timers.Delete(key)
|
m.timers.Delete(key)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ func (task *ParallelTask) Run() {
|
|||||||
|
|
||||||
close(task.subFinishChan)
|
close(task.subFinishChan)
|
||||||
task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放
|
task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放
|
||||||
|
task.worker = nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ func (task *SeqTask) Run() {
|
|||||||
task.Result = taskResult
|
task.Result = taskResult
|
||||||
task.mainErr = taskErr
|
task.mainErr = taskErr
|
||||||
task.locker.Unlock()
|
task.locker.Unlock()
|
||||||
|
|
||||||
|
task.worker = nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user