summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/node-tsk.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/node-tsk.lua')
-rw-r--r--tex/context/base/mkiv/node-tsk.lua25
1 files changed, 13 insertions, 12 deletions
diff --git a/tex/context/base/mkiv/node-tsk.lua b/tex/context/base/mkiv/node-tsk.lua
index aa59d1d5d..f2f78252a 100644
--- a/tex/context/base/mkiv/node-tsk.lua
+++ b/tex/context/base/mkiv/node-tsk.lua
@@ -226,24 +226,25 @@ statistics.register("node list callback tasks", function()
end
end)
-function tasks.actions(name) -- we optimize for the number or arguments (no ...)
+local function create(data,t)
+ created = created + 1
+ local runner = compile(data.list,data.processor,t)
+ if trace_tasks then
+ report_tasks("creating runner %a, %i actions enabled",t.name,data.list.steps or 0)
+ end
+ data.runner = runner
+ return runner
+end
+
+function tasks.actions(name)
local data = tasksdata[name]
if data then
local t = data.templates
if t then
t.name = data.name
return function(...)
- total = total + 1 -- will go away
- local runner = data.runner
- if not runner then
- created = created + 1
- if trace_tasks then
- report_tasks("creating runner %a",name)
- end
- runner = compile(data.list,data.processor,t)
- data.runner = runner
- end
- return runner(...)
+ total = total + 1
+ return (data.runner or create(data,t))(...)
end
end
end