From 66b24585a9657efc3b9ed583a890dbed8e0fd5a9 Mon Sep 17 00:00:00 2001 From: GeorgyKirichenko <kirichenkoga@gmail.com> Date: Tue, 26 Apr 2016 11:06:01 +0300 Subject: [PATCH] Use sleep/wakeup for snapshot daemon. Fixed #1420 --- src/box/lua/snapshot_daemon.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/box/lua/snapshot_daemon.lua b/src/box/lua/snapshot_daemon.lua index b0cd1725b5..f41226e655 100644 --- a/src/box/lua/snapshot_daemon.lua +++ b/src/box/lua/snapshot_daemon.lua @@ -172,29 +172,29 @@ do if interval == nil then break end - if self.control:get(interval) == nil then + fiber.sleep(interval) + if self.reloaded ~= true then local s, e = pcall(process, self) if not s then log.error(e) end else + self.reloaded = false log.info("reloaded") end end log.info("stopped") - self.control:close() - self.control = nil self.fiber = nil end local function reload(self) if self.snapshot_period > 0 and self.fiber == nil then - self.control = fiber.channel(5) self.fiber = fiber.create(daemon_fiber, self) elseif self.fiber ~= nil then -- wake up daemon - self.control:put(true) + self.reloaded = true + fiber.wakeup(self.fiber) end end -- GitLab