summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2017-03-14 00:11:46 +0300
committerMichael Klishin <mklishin@pivotal.io>2017-03-14 00:11:46 +0300
commit2f909df3dc3750f8cb6b1a9854c2ccd6ff6c661a (patch)
treee6367698d607c50433704d18086dfc48e865a9cf /src
parentc87f3acd4fd23e1204e30ad021c65aa8655e3dd3 (diff)
downloadrabbitmq-server-git-2f909df3dc3750f8cb6b1a9854c2ccd6ff6c661a.tar.gz
rabbit_hipe: handle eperm errors better
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_hipe.erl18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/rabbit_hipe.erl b/src/rabbit_hipe.erl
index b869b824df..bb13a3baf4 100644
--- a/src/rabbit_hipe.erl
+++ b/src/rabbit_hipe.erl
@@ -38,8 +38,12 @@ hipe_compile() ->
compile_to_directory(Dir0) ->
Dir = rabbit_file:filename_as_a_directory(rabbit_data_coercion:to_list(Dir0)),
- ok = prepare_ebin_directory(Dir),
- hipe_compile(fun (Mod) -> compile_and_save(Mod, Dir) end, true).
+ case prepare_ebin_directory(Dir) of
+ ok ->
+ hipe_compile(fun (Mod) -> compile_and_save(Mod, Dir) end, true);
+ {error, Err} ->
+ {error, Err}
+ end.
needs_compilation(Mod, Force) ->
Exists = code:which(Mod) =/= non_existing,
@@ -110,9 +114,13 @@ split0([], Ls) -> Ls;
split0([I | Is], [L | Ls]) -> split0(Is, Ls ++ [[I | L]]).
prepare_ebin_directory(Dir) ->
- ok = rabbit_file:ensure_dir(Dir),
- ok = delete_beam_files(Dir),
- ok.
+ case rabbit_file:ensure_dir(Dir) of
+ ok ->
+ ok = delete_beam_files(Dir),
+ ok;
+ {error, eperm} ->
+ {error, eperm}
+ end.
delete_beam_files(Dir) ->
{ok, Files} = file:list_dir(Dir),