Preserve ordering in CooperativeScheduler;
This commit is contained in:
parent
efebbf8650
commit
449e29b31c
6
rx.lua
6
rx.lua
@ -1865,7 +1865,8 @@ end
|
|||||||
function CooperativeScheduler:update(delta)
|
function CooperativeScheduler:update(delta)
|
||||||
self.currentTime = self.currentTime + (delta or 0)
|
self.currentTime = self.currentTime + (delta or 0)
|
||||||
|
|
||||||
for i = #self.tasks, 1, -1 do
|
local i = 1
|
||||||
|
while i <= #self.tasks do
|
||||||
local task = self.tasks[i]
|
local task = self.tasks[i]
|
||||||
|
|
||||||
if self.currentTime >= task.due then
|
if self.currentTime >= task.due then
|
||||||
@ -1875,11 +1876,14 @@ function CooperativeScheduler:update(delta)
|
|||||||
table.remove(self.tasks, i)
|
table.remove(self.tasks, i)
|
||||||
else
|
else
|
||||||
task.due = math.max(task.due + (delay or 0), self.currentTime)
|
task.due = math.max(task.due + (delay or 0), self.currentTime)
|
||||||
|
i = i + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if not success then
|
if not success then
|
||||||
error(delay)
|
error(delay)
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
i = i + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -56,7 +56,8 @@ end
|
|||||||
function CooperativeScheduler:update(delta)
|
function CooperativeScheduler:update(delta)
|
||||||
self.currentTime = self.currentTime + (delta or 0)
|
self.currentTime = self.currentTime + (delta or 0)
|
||||||
|
|
||||||
for i = #self.tasks, 1, -1 do
|
local i = 1
|
||||||
|
while i <= #self.tasks do
|
||||||
local task = self.tasks[i]
|
local task = self.tasks[i]
|
||||||
|
|
||||||
if self.currentTime >= task.due then
|
if self.currentTime >= task.due then
|
||||||
@ -66,11 +67,14 @@ function CooperativeScheduler:update(delta)
|
|||||||
table.remove(self.tasks, i)
|
table.remove(self.tasks, i)
|
||||||
else
|
else
|
||||||
task.due = math.max(task.due + (delay or 0), self.currentTime)
|
task.due = math.max(task.due + (delay or 0), self.currentTime)
|
||||||
|
i = i + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if not success then
|
if not success then
|
||||||
error(delay)
|
error(delay)
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
i = i + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user