local uv = require('luv') local function sleep(delay, thread) thread = thread or coroutine.running() local timer = uv.new_timer() uv.timer_start(timer, delay, 0, function () uv.timer_stop(timer) uv.close(timer) return assert(coroutine.resume(thread)) end) return coroutine.yield() end local function setTimeout(delay, callback, ...) local timer = uv.new_timer() local args = {...} uv.timer_start(timer, delay, 0, function () uv.timer_stop(timer) uv.close(timer) callback(unpack(args)) end) return timer end local function setInterval(interval, callback, ...) local timer = uv.new_timer() uv.timer_start(timer, interval, interval, bind(callback, ...)) return timer end local function clearInterval(timer) if uv.is_closing(timer) then return end uv.timer_stop(timer) uv.close(timer) end local clearTimeout = clearInterval setTimeout(2000, function() print 'Timed out' end); print 'running uv' uv.run() print 'finished'
116600cookie-checkLua setTimeout/clearTimeout