aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArvydas Sidorenko <asido4@gmail.com>2012-06-16 12:54:51 +0200
committerAdrian C. (anrxc) <anrxc@sysphere.org>2012-06-18 01:28:01 +0200
commit363c03e79c334cc0f3d75c1a3b60edbca0214465 (patch)
treecebe9cd7d59ad4606fdcaa26046bc0a814bddc68
parent8e35a983bf24f6f90df4630b2b55409f0ca1d213 (diff)
downloadvicious-legacy-363c03e79c334cc0f3d75c1a3b60edbca0214465.tar.xz
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 <asido4@gmail.com> Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
-rw-r--r--widgets/cpu.lua7
-rw-r--r--widgets/raid.lua6
2 files changed, 9 insertions, 4 deletions
diff --git a/widgets/cpu.lua b/widgets/cpu.lua
index b036b1e..125db96 100644
--- a/widgets/cpu.lua
+++ b/widgets/cpu.lua
@@ -7,7 +7,7 @@
-- {{{ Grab environment
local ipairs = ipairs
-local io = { lines = io.lines }
+local io = { open = io.open }
local setmetatable = setmetatable
local math = { floor = math.floor }
local table = { insert = table.insert }
@@ -15,6 +15,7 @@ local string = {
sub = string.sub,
gmatch = string.gmatch
}
+local naught = require("naughty")
-- }}}
@@ -33,7 +34,8 @@ local function worker(format)
local cpu_lines = {}
-- Get CPU stats
- for line in io.lines("/proc/stat") do
+ local fd = io.open("/proc/stat")
+ for line in fd:lines() do
if string.sub(line, 1, 3) ~= "cpu" then break end
cpu_lines[#cpu_lines+1] = {}
@@ -42,6 +44,7 @@ local function worker(format)
table.insert(cpu_lines[#cpu_lines], i)
end
end
+ fd:close()
-- Ensure tables are initialized correctly
for i = #cpu_total + 1, #cpu_lines do
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