diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2012-03-14 17:23:53 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2012-03-14 17:23:53 +0000 |
| commit | 2c54d455ba5b2febdab7d1ade543a7a8d699531c (patch) | |
| tree | 7e2c55cc8d0afb6256ae42ec9627cdae8a3b3f7d /src | |
| parent | eddfe7919c5143ab7022dce28768549d3ec39325 (diff) | |
| download | rabbitmq-server-git-2c54d455ba5b2febdab7d1ade543a7a8d699531c.tar.gz | |
Only sleep as much as we need, and tail recurse properly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue.erl | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 977d302f88..badbe7b578 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -428,9 +428,6 @@ info_all(VHostPath, Items) -> map(VHostPath, fun (Q) -> info(Q, Items) end). force_event_refresh() -> force_event_refresh([Q#amqqueue.name || Q <- list()]). -force_event_refresh([]) -> - ok; - force_event_refresh(QNames) -> Qs = [Q || Q <- list(), lists:member(Q#amqqueue.name, QNames)], {_, Bad} = rabbit_misc:multi_call( @@ -438,9 +435,11 @@ force_event_refresh(QNames) -> FailedPids = [Pid || {Pid, _Reason} <- Bad], Failed = [Name || #amqqueue{name = Name, pid = Pid} <- Qs, lists:member(Pid, FailedPids)], - timer:sleep(100), - force_event_refresh(Failed), - ok. + case Failed of + [] -> ok; + _ -> timer:sleep(100), + force_event_refresh(Failed) + end. consumers(#amqqueue{ pid = QPid }) -> delegate_call(QPid, consumers). |
