diff options
| -rw-r--r-- | src/rabbit_control.erl | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl index 59df82b323..0e9e034a61 100644 --- a/src/rabbit_control.erl +++ b/src/rabbit_control.erl @@ -406,13 +406,20 @@ wait_for_application(Node, PidFile, Application, Inform) -> wait_for_application(Node, Pid, Application). wait_for_application(Node, Pid, Application) -> + while_process_is_alive(Node, Pid, + fun() -> rabbit_nodes:is_running(Node, Application) end). + +wait_for_startup(Node, Pid) -> + while_process_is_alive(Node, Pid, + fun() -> rpc:call(Node, rabbit, await_startup, []) end). + +while_process_is_alive(Node, Pid, Activity) -> case process_up(Pid) of - true -> case rpc:call(Node, rabbit, await_startup, []) of + true -> case Activity(Node) of ok -> ok; Other -> timer:sleep(?EXTERNAL_CHECK_INTERVAL), - wait_for_application(Node, Pid, - Application) - end; + while_process_is_alive(Node, Pid, Activity) + end; false -> {error, process_not_running} end. |
