mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-18 21:25:58 +00:00
#SCHEDULEDISPATCHER - Fixing a memory leak. Thanks to @Shazzer1951
This commit is contained in:
@@ -246,11 +246,11 @@ function SCHEDULEDISPATCHER:AddSchedule( Scheduler, ScheduleFunction, ScheduleAr
|
|||||||
-- self:T3( { Repeat = CallID, CurrentTime, ScheduleTime, ScheduleArguments } )
|
-- self:T3( { Repeat = CallID, CurrentTime, ScheduleTime, ScheduleArguments } )
|
||||||
return ScheduleTime -- returns the next time the function needs to be called.
|
return ScheduleTime -- returns the next time the function needs to be called.
|
||||||
else
|
else
|
||||||
self:Stop( Scheduler, CallID )
|
self:_Reclaim( Scheduler, CallID )
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
self:Stop( Scheduler, CallID )
|
self:_Reclaim( Scheduler, CallID )
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
self:I( "<<<>" .. Name .. ":" .. Line .. " (" .. Source .. ")" )
|
self:I( "<<<>" .. Name .. ":" .. Line .. " (" .. Source .. ")" )
|
||||||
@@ -375,3 +375,13 @@ function SCHEDULEDISPATCHER:NoTrace( Scheduler )
|
|||||||
Scheduler.ShowTrace = false
|
Scheduler.ShowTrace = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Helper for memory cleanup for self stopping schedulers
|
||||||
|
-- @param #SCHEDULEDISPATCHER self
|
||||||
|
-- @param Core.Scheduler#SCHEDULER Scheduler Scheduler object.
|
||||||
|
-- @param #string CallID (Optional) Scheduler Call ID.
|
||||||
|
function SCHEDULEDISPATCHER:_Reclaim( Scheduler, CallID )
|
||||||
|
self:Stop( Scheduler, CallID ) -- remove DCS timer, nil ScheduleID
|
||||||
|
if self.Schedule[Scheduler] then self.Schedule[Scheduler][CallID] = nil end
|
||||||
|
self.ObjectSchedulers[CallID] = nil
|
||||||
|
self.PersistentSchedulers[CallID] = nil
|
||||||
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user