diff options
author | Matthias Radestock <matthias@lshift.net> | 2008-07-12 10:24:41 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@lshift.net> | 2008-07-12 10:24:41 +0100 |
commit | 30e6d7a967673e7ca4ca5cf6b07f099521bf3c49 (patch) | |
tree | b23f1b6ee5cbd6532059b9f3c0e49dd8c9271257 | |
parent | 59b0187504a41ea31a7dee3f4442f0a76bf31c50 (diff) | |
download | rabbitmq-server-30e6d7a967673e7ca4ca5cf6b07f099521bf3c49.tar.gz |
rabbit_realm:check/2 is run outside tx
-rw-r--r-- | src/rabbit_realm.erl | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/rabbit_realm.erl b/src/rabbit_realm.erl index 7b2d730c..4668be26 100644 --- a/src/rabbit_realm.erl +++ b/src/rabbit_realm.erl @@ -133,12 +133,11 @@ parent_table_for_resource(#resource{kind = exchange}) -> exchange; parent_table_for_resource(#resource{kind = queue}) -> amqqueue. -check(#resource{kind = realm, name = Realm}, Resource = #resource{}) -> - F = mnesia:match_object(#realm_resource{resource = Resource#resource.name, realm = Realm}), - case mnesia:async_dirty(F) of - {atomic,[]} -> false; - {atomic,_} -> true; - _ -> false +check(#resource{kind = realm, name = Realm}, R = #resource{name = Name}) -> + case mnesia:dirty_match_object( + {realm_table_for_resource(R), Realm, Name}) of + [] -> false; + _ -> true end. % Requires a mnesia transaction. |