summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2008-07-12 10:24:41 +0100
committerMatthias Radestock <matthias@lshift.net>2008-07-12 10:24:41 +0100
commit30e6d7a967673e7ca4ca5cf6b07f099521bf3c49 (patch)
treeb23f1b6ee5cbd6532059b9f3c0e49dd8c9271257
parent59b0187504a41ea31a7dee3f4442f0a76bf31c50 (diff)
downloadrabbitmq-server-30e6d7a967673e7ca4ca5cf6b07f099521bf3c49.tar.gz
rabbit_realm:check/2 is run outside tx
-rw-r--r--src/rabbit_realm.erl11
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.