Reload luci.config for each thread
[project/luci.git] / libs / web / luasrc / config.lua
index 955ede9..53db82b 100644 (file)
@@ -25,9 +25,18 @@ limitations under the License.
 
 ]]--
 
+local util = require "luci.util"
 module("luci.config",
-       function(m)
-               if pcall(require, "luci.model.uci") then
-                       setmetatable(m, {__index = luci.model.uci.cursor():get_all("luci")})
-               end
-       end)
\ No newline at end of file
+               function(m)
+                       if pcall(require, "luci.model.uci") then
+                               local config = util.threadlocal()
+                               setmetatable(m, {
+                                       __index = function(tbl, key)
+                                               if not config[key] then
+                                                       config[key] = luci.model.uci.cursor():get_all("luci", key)
+                                               end
+                                               return config[key]
+                                       end
+                               })
+                       end
+               end)