From 363c03e79c334cc0f3d75c1a3b60edbca0214465 Mon Sep 17 00:00:00 2001 From: Arvydas Sidorenko Date: Sat, 16 Jun 2012 12:54:51 +0200 Subject: Fixed io.lines() bug In Lua 5.2 io.lines() has to be used to iterate until EOF, otherwise the fd will not be closed and eventually tons of naughty messages will start to pop up saying that no more fd can be opened. Signed-off-by: Arvydas Sidorenko Signed-off-by: Adrian C. (anrxc) --- widgets/raid.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'widgets/raid.lua') diff --git a/widgets/raid.lua b/widgets/raid.lua index e236d11..58a7359 100644 --- a/widgets/raid.lua +++ b/widgets/raid.lua @@ -4,7 +4,7 @@ ----------------------------------------------------- -- {{{ Grab environment -local io = { lines = io.lines } +local io = { open = io.open } local setmetatable = setmetatable local string = { len = string.len, @@ -33,7 +33,8 @@ local function worker(format, warg) } -- Linux manual page: md(4) - for line in io.lines("/proc/mdstat") do + local fd = io.open("/proc/mdstat") + for line in fd:lines() do if mddev[warg]["found"] then local updev = string.match(line, "%[[_U]+%]") @@ -50,6 +51,7 @@ local function worker(format, warg) end end end + fd:close() return {mddev[warg]["assigned"], mddev[warg]["active"]} end -- cgit v1.2.3