aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util/async.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/util/async.lua b/util/async.lua
index 012cfd87..e8be0510 100644
--- a/util/async.lua
+++ b/util/async.lua
@@ -215,12 +215,28 @@ end
function runner_mt:enqueue(input)
table.insert(self.queue, input);
self:log("debug", "queued new work item, %d items queued", #self.queue);
+ return self;
end
function runner_mt:log(level, fmt, ...)
return log(level, "[runner %s] "..fmt, self.id, ...);
end
+function runner_mt:onready(f)
+ self.watchers.ready = f;
+ return self;
+end
+
+function runner_mt:onwaiting(f)
+ self.watchers.waiting = f;
+ return self;
+end
+
+function runner_mt:onerror(f)
+ self.watchers.error = f;
+ return self;
+end
+
local function ready()
return pcall(checkthread);
end