aboutsummaryrefslogtreecommitdiff
path: root/advtrains_line_automation/scheduler.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_line_automation/scheduler.lua')
-rw-r--r--advtrains_line_automation/scheduler.lua7
1 files changed, 7 insertions, 0 deletions
diff --git a/advtrains_line_automation/scheduler.lua b/advtrains_line_automation/scheduler.lua
index 8afaa55..27cb528 100644
--- a/advtrains_line_automation/scheduler.lua
+++ b/advtrains_line_automation/scheduler.lua
@@ -48,6 +48,7 @@ function sched.save()
end
function sched.run()
+ advtrains.lines.profiler:enter("scheduler_run")
local ctime = ln.rwt.get_time()
local cnt = 0
local ucn, elem
@@ -57,7 +58,9 @@ function sched.run()
table.remove(queue, 1)
if callbacks[elem.e] then
-- run it
+ advtrains.lines.profiler:enter("scheduler_run_single_schedule")
callbacks[elem.e](elem.d)
+ advtrains.lines.profiler:leave("scheduler_run_single_schedule")
else
atwarn("[lines][scheduler] No callback to handle schedule",elem)
end
@@ -70,6 +73,7 @@ function sched.run()
break
end
end
+ advtrains.lines.profiler:leave("scheduler_run")
end
-- Enqueue a new scheduled item to be executed at "rwtime"
@@ -79,6 +83,7 @@ end
-- used to prevent expotentially growing "scheduler bombs"
-- unitlim: Custom override for UNITS_THRESH (see there)
function sched.enqueue(rwtime, handler, evtdata, unitid, unitlim)
+ advtrains.lines.profiler:enter("scheduler_enqueue")
local qtime = ln.rwt.to_secs(rwtime)
assert(type(handler)=="string")
assert(type(unitid)=="string")
@@ -91,6 +96,7 @@ function sched.enqueue(rwtime, handler, evtdata, unitid, unitlim)
local ulim=(unitlim or UNITS_THRESH)
if ucn >= ulim then
atlog("[lines][scheduler] discarding enqueue for",handler,"(limit",ulim,") because unit",unitid,"has already",ucn,"schedules enqueued")
+ advtrains.lines.profiler:leave("scheduler_enqueue")
return false
end
@@ -104,6 +110,7 @@ function sched.enqueue(rwtime, handler, evtdata, unitid, unitlim)
u=unitid,
})
units_cnt[unitid] = ucn + 1
+ advtrains.lines.profiler:leave("scheduler_enqueue")
return true
end
cnt = cnt+1