Merge branch 'stable'

This commit is contained in:
Diana Corbacho 2016-03-31 10:21:45 +01:00
commit 6e6a9431c8
1 changed files with 14 additions and 6 deletions

View File

@ -67,13 +67,21 @@ update(Module) ->
%% Internal functions
%%----------------------------------------------------------------------------
load_code(Module, Code) ->
unload(Module),
case code:load_binary(Module, "loaded by rabbit_common", Code) of
{module, _} ->
LockId = {{?MODULE, Module}, self()},
FakeFilename = "Loaded by rabbit_common",
global:set_lock(LockId, [node()]),
case code:which(Module) of
FakeFilename ->
ok;
{error, Reason} ->
throw({cannot_load, Module, Reason})
end.
_ ->
unload(Module),
case code:load_binary(Module, FakeFilename, Code) of
{module, _} -> ok;
{error, Reason} -> throw({cannot_load, Module, Reason})
end
end,
global:del_lock(LockId, [node()]),
ok.
unload(Module) ->
code:soft_purge(Module),