Reload luci.config for each thread
[project/luci.git] / libs / web / luasrc / config.lua
index 258f5e6..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")})
+                               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)
\ No newline at end of file
+               end)