diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2020-02-02 17:22:50 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2020-02-02 17:22:50 +0300 |
| commit | 6eb7144387f89747e7d65b05a4dea42c20457e06 (patch) | |
| tree | db5afd4b4903a02cff42eb0a11fc447ce21c801c /src | |
| parent | de658de4a998dc3f205bb5882d06b5d1769c7db0 (diff) | |
| download | rabbitmq-server-git-6eb7144387f89747e7d65b05a4dea42c20457e06.tar.gz | |
rabbit_exchange:lookup/1: support lists of keys
like rabbit_amqqueue does
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 2f7ec54041..d5b96adff1 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -219,8 +219,16 @@ assert_args_equivalence(#exchange{ name = Name, arguments = Args }, -spec lookup (name()) -> rabbit_types:ok(rabbit_types:exchange()) | - rabbit_types:error('not_found'). - + rabbit_types:error('not_found'); + ([name()]) -> + [rabbit_types:exchange()]. + +lookup([]) -> []; +lookup([Name]) -> ets:lookup(rabbit_exchange, Name); +lookup(Names) when is_list(Names) -> + %% Normally we'd call mnesia:dirty_read/1 here, but that is quite + %% expensive for reasons explained in rabbit_misc:dirty_read/1. + lists:append([ets:lookup(rabbit_exchange, Name) || Name <- Names]); lookup(Name) -> rabbit_misc:dirty_read({rabbit_exchange, Name}). |
