diff options
| author | Alvaro Videla <videlalvaro@gmail.com> | 2015-11-16 12:59:52 +0100 |
|---|---|---|
| committer | Alvaro Videla <videlalvaro@gmail.com> | 2015-11-16 12:59:52 +0100 |
| commit | da5bc96f3a0cad9b41a1735ec101faa4d6351d8b (patch) | |
| tree | 680377a0da96d415fe24213a0ed8a8037d370429 /src | |
| parent | f553e08ba40de18725b3315346669db5667b228e (diff) | |
| download | rabbitmq-server-git-da5bc96f3a0cad9b41a1735ec101faa4d6351d8b.tar.gz | |
makes sures the aggregator process doesn't hang
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_control_main.erl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl index 2799d510d0..5d061252d0 100644 --- a/src/rabbit_control_main.erl +++ b/src/rabbit_control_main.erl @@ -769,8 +769,20 @@ call(Node, {Mod, Fun, Args}, InfoKeys, ToBinUtf8, Timeout) -> true -> lists:map(fun list_to_binary_utf8/1, Args); false -> Args end, - spawn_link(rabbit_cli, rpc_call, [Node, Mod, Fun, Args0, Ref = make_ref(), - Pid = self(), Timeout]), + Ref = make_ref(), + Pid = self(), + spawn_link( + fun () -> + case rabbit_cli:rpc_call(Node, Mod, Fun, Args0, + Ref, Pid, Timeout) of + {error, _} = Error -> + Pid ! {error, Error}; + {bad_argument, _} = Error -> + Pid ! {error, Error}; + _ -> + ok + end + end), rabbit_control_misc:wait_for_info_messages( Pid, Ref, InfoKeys, fun display_info_message/2, Timeout). |
