util/watchdog.lua

changeset 10
7d28407cb67e
parent 9
7da8b3c95bb1
child 11
38b1768e3c43
--- a/util/watchdog.lua	Mon Jan 04 12:00:03 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-local timer = require "util.timer";
-local setmetatable = setmetatable;
-local os_time = os.time;
-
-module "watchdog"
-
-local watchdog_methods = {};
-local watchdog_mt = { __index = watchdog_methods };
-
-function new(timeout, callback)
-	local watchdog = setmetatable({ timeout = timeout, last_reset = os_time(), callback = callback }, watchdog_mt);
-	timer.add_task(timeout+1, function (current_time)
-		local last_reset = watchdog.last_reset;
-		if not last_reset then
-			return;
-		end
-		local time_left = (last_reset + timeout) - current_time;
-		if time_left < 0 then
-			return watchdog:callback();
-		end
-		return time_left + 1;
-	end);
-	return watchdog;
-end
-
-function watchdog_methods:reset()
-	self.last_reset = os_time();
-end
-
-function watchdog_methods:cancel()
-	self.last_reset = nil;
-end
-
-return _M;

mercurial