diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2014-01-22 12:03:00 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2014-01-22 12:03:00 +0000 |
commit | e9cdeca755062af54b1034f7b1e371f25225ab86 (patch) | |
tree | 9e2285407ff4d87f3b396c49983794dc14437ecd | |
parent | ecd3ec697b602b92ff08a3eaafc0521dafe8bff5 (diff) | |
download | rabbitmq-server-e9cdeca755062af54b1034f7b1e371f25225ab86.tar.gz |
Don't explode when there is more than one queue to route to!
-rw-r--r-- | src/dtree.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dtree.erl b/src/dtree.erl index f39d8e3a..436bac55 100644 --- a/src/dtree.erl +++ b/src/dtree.erl @@ -121,10 +121,13 @@ take_all(SK, {P, S}) -> {KVs, {P1, prune(SKS, PKS, S)}} end. -%% Drop all entries for the given primary key. +%% Drop all entries for the given primary key (which does not have to exist). drop(PK, {P, S}) -> - SKS = gb_trees:get(PK, P), - {gb_trees:delete(PK, P), prune(SKS, gb_sets:singleton(PK), S)}. + case gb_trees:lookup(PK, P) of + none -> {P, S}; + {value, SKS} -> {gb_trees:delete(PK, P), + prune(SKS, gb_sets:singleton(PK), S)} + end. is_defined(SK, {_P, S}) -> gb_trees:is_defined(SK, S). |