Comparison

core/modulemanager.lua @ 4643:9008fc396fb1

modulemanager: When a shared module becomes global, ensure it still gets loaded onto the original target host
author Matthew Wild <mwild1@gmail.com>
date Sat, 21 Apr 2012 20:37:06 +0100
parent 4642:c1602c07d14d
child 4652:9d24bc503621
comparison
equal deleted inserted replaced
4642:c1602c07d14d 4643:9008fc396fb1
181 if api_instance.host == "*" then 181 if api_instance.host == "*" then
182 if not api_instance.global then -- COMPAT w/pre-0.9 182 if not api_instance.global then -- COMPAT w/pre-0.9
183 log("warn", "mod_%s: Setting module.host = '*' deprecated, call module:set_global() instead", module_name); 183 log("warn", "mod_%s: Setting module.host = '*' deprecated, call module:set_global() instead", module_name);
184 api_instance:set_global(); 184 api_instance:set_global();
185 end 185 end
186 else 186 if host ~= api_instance.host and module_has_method(pluginenv, "add_host") then
187 modulemap[host][module_name] = pluginenv; 187 -- Now load the module again onto the host it was originally being loaded on
188 do_load_module(host, module_name);
189 end
188 end 190 end
189 end 191 end
190 if not ok then 192 if not ok then
191 log("error", "Error initializing module '%s' on '%s': %s", module_name, host, err or "nil"); 193 log("error", "Error initializing module '%s' on '%s': %s", module_name, host, err or "nil");
192 end 194 end