diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-11-24 15:32:31 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-11-24 15:32:31 +0000 |
| commit | 97ea55f69ff8c4a51a13753a395cfd71e2002e16 (patch) | |
| tree | e2ce1652b7d16b84ea386c053a1d29ca55822d77 | |
| parent | c99557f6fbe00eb6c29832b169bee68813f24a77 (diff) | |
| download | rabbitmq-server-git-97ea55f69ff8c4a51a13753a395cfd71e2002e16.tar.gz | |
Filter out connections which no longer exist.
| -rw-r--r-- | src/rabbit_connection_sup.erl | 8 | ||||
| -rw-r--r-- | src/rabbit_networking.erl | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/rabbit_connection_sup.erl b/src/rabbit_connection_sup.erl index b2aba2eeb0..3c344ba0cc 100644 --- a/src/rabbit_connection_sup.erl +++ b/src/rabbit_connection_sup.erl @@ -29,7 +29,7 @@ -ifdef(use_specs). -spec(start_link/0 :: () -> {'ok', pid(), pid()}). --spec(reader/1 :: (pid()) -> pid()). +-spec(reader/1 :: (pid()) -> pid() | noproc). -endif. @@ -57,7 +57,11 @@ start_link() -> {ok, SupPid, ReaderPid}. reader(Pid) -> - hd(supervisor2:find_child(Pid, reader)). + try + hd(supervisor2:find_child(Pid, reader)) + catch exit:{noproc, _} -> + noproc + end. %%-------------------------------------------------------------------------- diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl index 2c0912dfd6..146d04cdbe 100644 --- a/src/rabbit_networking.erl +++ b/src/rabbit_networking.erl @@ -307,9 +307,11 @@ connections() -> rabbit_networking, connections_local, []). connections_local() -> - [rabbit_connection_sup:reader(ConnSup) || + [Reader || {_, ConnSup, supervisor, _} - <- supervisor:which_children(rabbit_tcp_client_sup)]. + <- supervisor:which_children(rabbit_tcp_client_sup), + Reader <- [rabbit_connection_sup:reader(ConnSup)], + Reader =/= noproc]. connection_info_keys() -> rabbit_reader:info_keys(). |
